Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ASP.Net MVC 5 Html.BeginForm提交和具有必需属性的模型_Javascript_Jquery_Asp.net Mvc_Asp.net Mvc 5 - Fatal编程技术网

Javascript ASP.Net MVC 5 Html.BeginForm提交和具有必需属性的模型

Javascript ASP.Net MVC 5 Html.BeginForm提交和具有必需属性的模型,javascript,jquery,asp.net-mvc,asp.net-mvc-5,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 5,我在模型属性上有required属性,但我添加了一个“微调器”,以在submit表单中显示处理请求。现在,尽管它没有提交表单,但它显示了我创建的“微调器”,并停留在覆盖上,但具有必需属性的文本框处于焦点位置 using (Html.BeginForm("Add", "UserAccount", FormMethod.Post, new { onsubmit="spinner()"})) { //Html.TextBoxes for model properties with required }

我在模型属性上有required属性,但我添加了一个“微调器”,以在submit表单中显示处理请求。现在,尽管它没有提交表单,但它显示了我创建的“微调器”,并停留在覆盖上,但具有必需属性的文本框处于焦点位置

using (Html.BeginForm("Add", "UserAccount", FormMethod.Post, new { onsubmit="spinner()"}))
{
//Html.TextBoxes for model properties with required
}
<div id="spinner" hidden="">
    <div>
        <i class="fa fa-spinner fa-spin fa-pulse" style="color: white; font-    size: 50px;"></i>
        <label style="color: white; font-size: 50px;">Processing</label>
    </div>
</div>




<script>
function spinner() {
    $("#spinner").show();
}
</script>
使用(Html.BeginForm(“Add”,“UserAccount”,FormMethod.Post,new{onsubmit=“spinner()”}))
{
//Html.textboxs,用于具有必需属性的模型属性
}
处理
函数微调器(){
$(“#微调器”).show();
}
在访问onsubmit函数之前,是否可以先检查“required”属性是否满足?

您需要将submitHandler函数添加到验证器中。是完整的代码

<script type="text/javascript">
   $(function () {

      $("form").data("validator").settings.submitHandler = function (form) {
         $("#submit-button").html("<i class=\"fa fa-spinner fa-pulse\"></i> Signing In...")
            .prop('disabled', true);
         form.submit();
      };
   });
</script>

$(函数(){
$(“表单”).data(“验证器”).settings.submitHandler=函数(表单){
$(“#提交按钮”).html(“登录…”)
.prop('disabled',true);
表单提交();
};
});

我认为您需要在提交表单之前进行客户端验证。您在属性上添加了必需的属性,这很好。现在进行客户端验证您需要添加一些js来处理客户端的所有验证

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include("~/Scripts/jquery.validate*"));
下面是您需要的js列表

<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
请在本博客上找到更多信息

在正确验证所有字段(如属性中提到的
必填项
范围
等)之前,使用此选项不会提交您的表单

添加这组代码后,您可以通过单击按钮以及下面的按钮来验证表单

$("#btn1").click(function (e) {

   e.preventDefault();

   // now trigger the form validation, result is 1 or 0
   var result = $('form').valid();  
   if(!result)
   {
     // Do some stuff if form is not valid
   }
});

它说。数据是未定义的。看起来一个页面中有多个表单标记。如果是这样的话,您需要通过id来定位它-例如,使用(Html.BeginForm(“Add”,“UserAccount”,FormMethod.Post,new{id=“form1”)和
$(“#form1”).data(“validator”)
$("#btn1").click(function (e) {

   e.preventDefault();

   // now trigger the form validation, result is 1 or 0
   var result = $('form').valid();  
   if(!result)
   {
     // Do some stuff if form is not valid
   }
});