Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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
Jquery ASP.NET MVC:如果客户端验证通过,则禁用提交按钮_Jquery_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

Jquery ASP.NET MVC:如果客户端验证通过,则禁用提交按钮

Jquery ASP.NET MVC:如果客户端验证通过,则禁用提交按钮,jquery,asp.net-mvc,asp.net-mvc-4,Jquery,Asp.net Mvc,Asp.net Mvc 4,我有一个简单的MVC4表单,启用了客户端验证: @{ Html.EnableClientValidation(); } @{ Html.EnableUnobtrusiveJavaScript(); } @using (Html.BeginForm("Search", "Search", FormMethod.Post, new { id = "frmMain" })) { @Html.AntiForgeryToken() ..... <input ty

我有一个简单的MVC4表单,启用了客户端验证:

 @{ Html.EnableClientValidation(); }
 @{ Html.EnableUnobtrusiveJavaScript(); }
 @using (Html.BeginForm("Search", "Search", FormMethod.Post, new { id = "frmMain" }))
    {
      @Html.AntiForgeryToken() .....
      <input type="submit" value="Search" id="btnSubmit" />
@{Html.EnableClientValidation();}
@{Html.EnableUnobtrusiveJavaScript();}
@使用(Html.BeginForm(“Search”、“Search”、FormMethod.Post、new{id=“frmMain”}))
{
@Html.AntiForgeryToken()。。。。。
当用户单击submit并通过客户端上的所有验证时,我希望按照下面的jQuery禁用submit按钮。如何知道验证是否通过了jQuery脚本中的客户端

<script type="text/javascript">

$(document).ready(function () {
    $('input[type=submit]').click(function (e) {
        $(this).attr('disabled', true);
        $(this).attr('value', 'Working');
        $('#frmMain').submit();
    });
});

$(文档).ready(函数(){
$('input[type=submit]')。单击(函数(e){
$(this.attr('disabled',true);
$(this.attr('value','Working');
$('frmMain')。提交();
});
});

您可以将此代码挂接到表单验证程序中。只需确保它在jquery.validator.untrusive之后执行即可

<script>
    $("#you-form-id").data("validator").settings.submitHandler = function(form) {
         $("#submit-button").attr("disabled",true).val("Working");
         form.submit();
    };
</script>

$(“#您的表单id”).data(“validator”).settings.submitHandler=函数(表单){
$(“#提交按钮”).attr(“禁用”,true).val(“工作”);
表单提交();
};

当从控制器操作返回部分邮件时,我遇到了一些问题。相反,我连接到提交函数并检查表单是否有效,如下所示:

        $('form').submit(function () {
            if ($(this).valid()) {
                $('#order-form-submit-button').attr("disabled", true).val("wait...");
            }
        });

这比简单地用if($('#frmMain').valid(){我认为这两种方法都有效,并且在使用jQuery Validator插件时没有正确的答案。使用submitHandler(尽管代码更难看),您只处理一次验证,我不确定是否调用valid()将重新验证所有字段,这可能会对性能产生一些边际影响。