0

我正在使用jQuery和jQuery验证的ASP.NET MVC。验证错误列表第二次提交/点击表单

我已创建了一个页面,其中包含一些条目的名称和地址等..

在提交时点击我要验证的细节,我在视图模型的要求现场给。

所有运行正常,验证成功启动。

我想获取所有必填字段的错误列表。

我得到这样的:

var validator = $("#formname").validate(); 

for (var i = 0; i < validator.errorList.length; i++) { 
    console.log(validator.errorList[i].message); 
} 

所有运行良好,这里很好,但我面对这里的问题是,我得到了第二次点击的errorList /提交不是第一次点击。

我想第一次点击/提交所有errorList。

为什么它是第二次点击我不明白?

请谁做过这个问题或解决了它,帮我解决这个问题。

任何帮助将不胜感激。

我的代码示例:

$('#formname').submit(function() { 
    $.validator.unobtrusive.parse($('#formname')); 
    var $form1 = $('#workoerderDetails'); 

//Here I try to get all the error list starts 
    var validator = $("#formname").validate(); 

     for (var i = 0; i < validator.errorList.length; i++) { 
      console.log(validator.errorList[i].message); 
     } 
//Here I try to get all the error list ends 

    if ($form1.valid()) { 
    //my code if no any validation fire 
    } 
    else{ 
    return false; 
    } 
     }); 

$ Form1上运行完全没有问题,但我想从所有的错误列表,所以我使用验证变量在那里我得到所有errorlist在for循环,但它给了我在第二次提交/点击。

+0

你在哪里写了点击事件? –

+0

您是否也在使用Unobtrusive Validation插件?如果是这样,你不能调用'.validate()'方法,因为Unobtrusive插件已经自动执行了。您的实例将始终被忽略....这可能会解释点击事件的奇怪时机,尽管我们无法看到足够的代码来知道这一点。 – Sparky

+0

@ABUdhay我有呼叫表单提交,按钮上点击,但使用jquery表单名称提交。像$(“#formname”)。submit();在函数内部,我检查了验证。 –

回答

0

这是意外,我不知道,但我给我自己的第五个问题的答案。

var settings = $.data($('#formname')[0], 'validator').settings; 

      $("#formname").bind("invalid-form.validate", function (form, validator) { 
       var errors = validator.numberOfInvalids(); 
       var message = "Please fix these " + errors + " errors." ; 
       if (validator.errorList.length > 0) { 
        for (var x = 0; x < validator.errorList.length; x++) { 
         message += "<br/>\u25CF " + validator.errorList[x].message; 
        } 
        $("#errorList").show(); 
        $("#errorList").html(""); 
        $("#errorList").html(message); 
       } 
       else { 
        $("#errorList").hide(); 
        $("#errorList").html(""); 
       } 

      }); 

      settings.submitHandler = function (form) { 
       if (confirm("Are you sure you wish to submit")) 
        form.submit(); 
      }; 

感谢这篇文章codeproject

感谢所有反应非常快的用户。