2013-03-16 11 views
6

extensionを使用して、既存のjQuery検証スクリプトに以下のルールを追加していますが、このスニペットを実行すると破損して、まったく検証されません。前と後のカンマの組み合わせを試してみましたが、私はまた、acceptメソッドをMIMEタイプと共に使用しようとしましたが、それまでのところ何も働いていません。このスニペット(およびその前の行のコメント)をコメントアウトすると、コードは完全に機能しますが、これを追加すると改行されます。jQuery拡張メソッドの検証が有効でない

Here's a jsFiddleコードはそのままで(動作しません)、here's oneはまったく同じコードで、スニペットはコメントアウトされています(正しく動作します)。

スニペット自体:

form1upload: { 
    extension: "jpg|jpeg|pdf|doc|docx|png" 
} 

フルコード:

jQuery(document).ready(function() { 
    jQuery("#grantapp").validate({ 
     errorClass:"errorlabels", 
     rules: { 
      form1name: "required", 
      form1building: "required", 
      form1position: "required", 
      form1phonex: "required", 
      form1besttime: "required", 
      form1projtitle: "required", 
      form1benefit: "required", 
      form1timeframe: "required", 
      form1relevance: "required", 
      form1description: "required", 
      form1amount: "required", 
      form1acceptchk: "required", 
      form1upload: { 
       extension: "jpg|jpeg|pdf|doc|docx|png" 
      } 
     }, 
     messages: { 
      form1name: "You must enter your name.", 
      form1building: "You must enter your building.", 
      form1position: "You must enter your position.", 
      form1phonex: "You must enter your phone extension.", 
      form1besttime: "You must enter the best time to contact you.", 
      form1projtitle: "You must give your project a title.", 
      form1benefit: "You must enter the number of students who will benefit.", 
      form1timeframe: "You must enter a time frame for this project.", 
      form1relevance: "<br />You must state how this project is relevant to education.", 
      form1description: "<br />You must provide a description of your project.", 
      form1amount: "You must enter a requested amount.", 
      form1acceptchk: "<span style=\"position:relative;top:-10px;\">You must accept the terms.</span>", 
      form1upload: "You may not upload this type of file." 
     }, 
     errorPlacement: function (error, element) { 
      if (element.attr("name") == "form1acceptchk") { 
       error.insertAfter("#tbl1"); 
      } else { 
       error.insertAfter(element); 
      } 
     } 
    }); 
}); 
+0

構文が私に正しく見えます。 –

+0

それも私が思ったことです。私はそれを繰り返しチェックして、それは私によく見えます。特定の拡張セクションも[docsに従って]正しく表示されます(http://docs.jquery.com/Plugins/Validation/CustomMethods/extension#extension)。 – vaindil

+0

プラグインの複数のバージョンでテストされていて、本当に壊れているようです。http://jsfiddle.net/ult_combo/4jMHZ/ –

答えて

15

the extension rule/methodは、デフォルトではjQueryの検証プラグインの一部ではないためです。

extensionルールを使用する場合は、jQuery Validateプラグインのadditional-methods.js fileを含める必要があります。

それは今働いているようだ...

http://jsfiddle.net/tMRer/

+0

それは事でさえ気づかなかった。ご協力ありがとうございました! – vaindil

+0

注:ライブラリは更新されており、additional-methods.jsは分割されています。 extension.jsファイルを探します。 – Marcel

+0

@Marcel、[あなたはそれを見ていますか?](https://jqueryvalidation.org)開発者がすべてのメソッドをGitHubで別々のファイルとして利用できるようにするという混乱を招くかもしれないと思います。それ以外の場合、['extension'は依然として' additional-methods.js'ファイルの一部です(https://cdn.jsdelivr.net/npm/[email protected]/dist/additional-methods.js)。 – Sparky

関連する問題