1

いくつかのフォームフィールド (チェックボックスを含む) と関連する (jquery) 検証ルールを動的に追加する Web サイトを開発しています。更新 (明確化): 一部の検証では、検証メソッドを動的に追加する必要があります (関連するフォームフィールドが作成された後)。この問題は、フィールドが必須かどうかを判断するための検証コードに関連しています。チェックボックスが設定されている場合、フィールドは必須です。追加された検証規則は、'minlength'、'maxlength'、'integer' の検証に関して機能しますが、'required' の検証に関しては機能しません。「必須」で検証するためのコードが機能しない理由を理解していると思いますが(listitemが原因で)、このコードを修正する方法がわかりません...

(このサイトとhttp://api.jquery.com/checked-selector/の関連トピックを見ました)

チェックボックス フォームフィールドを追加するための JavaScript コード要素 (listitemnr を増やして ...):

<input type="checkbox" id="check'+ listitem +'" name="productselection'+ listitem +'" value="' + this.productid[listitem] + '">

更新:チェックボックスをチェックするためのコードを含む検証メソッドを追加するコードがチェックされます:

if ($("#nrofparts"+listitem).length > 0) { //elements exists?
                    //console.log("added VAL: "+listitem);
                    $("#nrofparts"+listitem).rules("add", { 
                        required: function(element) {return ($('#check'+listitem).is(':checked') );},
                        minlength: 1,
                        maxlength: 3,
                        integer:true, 

                    }
                ); //$("#investmentfix"+currindex).rules add
4

3 に答える 3

0

あなたは委任.onを使用していないので、ゼロとして取得していると思います.uが言ったように、いくつかのコンテンツを動的にロードするつもりです.ページにコンテンツを動的にロードするときはいつでも.on()を使用する必要があります. : $('').on('クリック',関数名); 以下のコードが役立ちます。

      var countChecked = function() {
        var n = $( "input:checked" ).length;
         $( "div" ).text( n + " checked!" );
      };

      $( "input[type=checkbox]" ).on( "click", countChecked );

ここにフィドルのデモがあります

于 2013-09-13T16:26:01.207 に答える