2017-03-15 7 views
0

データ属性でjQuery検証ルールを使用していますが、正常に機能していますが、必要なフィールドが検証されると残りのjqueryコードは機能しません。したがって、ItemIDは検証されますが、その成功関数は機能しません。ここで検証後のデータ属性によるjQuery検証

コードです:

HTML 

<input type="text" name="itemID" id="itemID" class="required" data-rule-required="true" data-msg-required="Please enter an item to search"> 

Jquery 

<script> 
$(document).ready(function() 
{ 
    var validator = $("#Form").validate(
    { 
     errorClass: 'validateError', 
     errorContainer: ".EmphasisDanger", 
     wrapper: "li" 
    }, 
    success: function(){ 
     stItems = $('#itemID').val().replace(/(?:\r\n|\r|\n)/g, ','); 
     document.Form.target='_parent'; 
     document.Form.action='/admin/system/index.cfm?JobIDs=' + stItems; 
     document.Form.submit(); 
     }); 
}); 

+0

the submitHandler callback functionを使用するためのもの、と 'SUCCESS'機能が見当違いです。ドキュメントを参照してください:https://jqueryvalidation.org/validate/#success – Sparky

+0

これにも注意する必要があります:[Allmanスタイルの危険な意味](http://stackoverflow.com/questions/11247328/dangerous-暗黙のうちにallman-style-in-javascript) – Sparky

答えて

0

あなたの構造は意味がありません。

それは、この...コンマと括弧の配置...指定した場合successコールバック関数についてthe docsあたりとして

$(document).ready(function() { 

    var validator = $("#Form").validate({ 
     errorClass: 'validateError', 
     errorContainer: ".EmphasisDanger", 
     wrapper: "li", 
     success: function() { 
      .... 
     } 
    }); 

}); 

に気づく、エラーラベルのようになります。有効な要素を示すために表示されます。 Stringが指定された場合、それはクラスとしてクラスに追加されます。 Functionが指定されている場合は、ラベル(jQueryオブジェクトとして)と有効な入力(DOM要素として)で呼び出されます。ラベルを使用して "ok!"のようなテキストを追加できます。

つまり、successの機能は送信する場所ではありません。

おそらく、あなたはあなたが不正な形式の中括弧を持っている...

$(document).ready(function() { 

    var validator = $("#Form").validate({ 
     errorClass: 'validateError', 
     errorContainer: ".EmphasisDanger", 
     wrapper: "li", 
     submitHandler: function(form) { 
      .... 
      // use the 'form' argument provided by the developer 
      form.submit(); 
     } 
    }); 

}); 
+0

働いて、ありがとう! – user2675939

関連する問題