0

jqueryとjquery検証でASP.NET MVCを使用しています。検証エラーリストは2番目に表示されますsubmit /フォームのクリック

私は私が必要なフィールドとしてビューモデルに与えているなどの詳細を検証する]をクリックし提出するには...

をいくつかのエントリの名前と住所、などが含まれている1ページを作成しました。

正常に実行されているすべての検証が正常に実行されます。

必要なフィールドのすべてのエラーリストを取得します。

私はこのようにそれを取得しています:

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

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

すべてここにも細かい実行されているが、私はここに直面しています問題は、私はerrorListが第二のクリックに/最初のクリックではない提出しましたです。

すべてのerrorListを最初にクリック/送信します。

2回目のクリックはなぜ起こりますかわかりません。

誰がこの問題を解決したか解決してください。これを解決するのを手伝ってください。

ご協力いただければ幸いです。

は私のコード例は:

$('#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が完全に正常稼動しているが、私はそれからすべてのエラーのリストを取得したいので、私は、私はforループ内のすべてのerrorlistを取得する場所バリ変数を使用しますが、それは私を与えます2回目の提出/クリックで

+0

あなたはクリックイベントをどこで書きましたか? –

+0

Unobtrusive Validationプラグインも使用していますか?そうであれば、Unobtrusiveプラグインが自動的にそれを行っているので、 '.validate()'メソッドを呼び出すことはできません。あなたのインスタンスは常に無視されます....これは、クリック事象の奇妙なタイミングを説明するかもしれませんが、それを知るには十分なコードを見ることができません。 – Sparky

+0

@ABUdhay私はボタンをクリックしてjqueryフォーム名を使用してsubmitフォームを送信しました。 $( "#formname")のようなものです。ここで関数の内部で検証をチェックしました。 –

答えて

0

これは間違いなく私には分かりませんが、自分の5番目の質問の答えを与えています。

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のおかげで、

非常に迅速に対応したすべてのユーザーに感謝します。

関連する問題