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

感謝所有反應非常快的用戶。