如何从jquery表单提交验证?

时间:2014-06-25 11:01:27

标签: jquery asp.net asp.net-mvc-4 validation

我无法在视图上启用验证消息,因为我使用jquery来提交表单。

任何人都有想法使用jquery提交表单进行验证吗?

查看

@using (Html.BeginForm("Index", "Sample", FormMethod.Post, new{ id="frmStep1"}))
 {
 <div class="form-group">
     <label>Question 1:<span class="text-danger">*</span></label>
     <small class="text-danger">
         <i> @Html.ValidationMessageFor(model => model.answer_01)</i>
     </small>
     <div class="radio">
         <label>
             @Html.RadioButtonFor(m=>m.answer_01,"2355")Male
         </label>
     </div>
     <div class="radio">
         <label>
             @Html.RadioButtonFor(m=>m.answer_01,"2355")Male
         </label>
     </div>
  </div>
  <button class="btn btn-primary" type="button" id="btnStep1">
     <span class="fa fa-arrow-circle-right">
     </span> Save
  </button>
}

脚本

$("#btnStep1").click(function () {

        $.ajax({
            url: "../Profile/Question",
            type: "POST",
            dataType: "json",
            data: $("form#frmStep1").serialize(),
            success: function(data) {
                alert('Ok');

            },
            fail: function(data) {
                console.log('failed to submit.');
            }
        });
    });

控制器

[HttpPost]
public ActionResult Index(SampleViewModel model)
{
    return Json("success",JsonRequestBehavior.AllowGet);
}

我不知道在用户无法输入某些文本时启用ViewModel上的验证器,请给出解决这些解决方案的一些想法。

1 个答案:

答案 0 :(得分:0)

您可以在表单中指定您的操作名称和控制器名称,并将输入类型设置为“提交”,如下所示:

 @using (Html.BeginForm("YourActionName", "YourControllerName", FormMethod.Post, new{ id="frmStep1"}))

   {
     <div class="form-group">
        <label>Question 1:<span class="text-danger">*</span></label>
        <small class="text-danger">
         <i> @Html.ValidationMessageFor(model => model.answer_01)</i>
      </small>
      <div class="radio">
       <label>
          @Html.RadioButtonFor(m=>m.answer_01,"2355")Male
        </label>
       </div>
      <div class="radio">
       <label>
          @Html.RadioButtonFor(m=>m.answer_01,"2355")Male
       </label>
      </div>
    </div>
 <input class="btn btn-primary" type="submit" value="Save" id="btnStep1" />

}