2012-04-03 6 views
2

配列にチェックボックスの値を格納したいのですが、selectListではなくselectList[]なので、検証ルールを使用することはできません。私はIDを試みたが、それはルールが名前に結び付くだけであるようだ。jqueryは配列入力の規則を追加します

HTML:

<input id='sendList' type='checkbox' name='selectList[]' value='$set[ListID]'> 

JSルール:で

$("#selectList").validate({ 
    rules: { 
     'selectList[]': { 
      required: true, 
      minlength: 1 
     } 
    } 
}); 

$("#selectList").validate({ 
     rules: { 
      selectList[]: { 
       required: true, 
       minlength: 1 
      } 
     } 
    }) 

}); 

答えて

0

なぜ引用符の内側にselectList[]をラップありがとう、彼らは識別子(試したやり方)、数字、または文字列にすることができます。コードの作業

http://jsfiddle.net/rMgLG/

+2

を実はこれ以外の作業の答えです。 jQueryのバリデーションでは、同じ名前の複数のフィールドの検証は許可されないので、上記のanswer.lnameという名前の最初のフィールドは 'selectList []'と検証され、フィールドの配列を投稿しようとするとあまり役に立ちません。 – jtheman

+0

私の仕事..........ありがとう!!!!!!!!! –

2

問題は[]カテゴリの最初の要素を検証既製jquery.validate.jsということです。ですから、少し修正する必要があります。 jquery.validate.jsで

、checkFormという名前の関数を見つけ、我々は以下のようにそれを変更する必要があります。

checkForm: function() { 
this.prepareForm(); 
for (var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++) { 
if (this.findByName(elements[i].name).length != undefined && this.findByName(elements[i].name).length > 1) { 
for (var cnt = 0; cnt < this.findByName(elements[i].name).length; cnt++) { 
this.check(this.findByName(elements[i].name)[cnt]); 
} 
} else { 
this.check(elements[i]); 
} 
} 
return this.valid(); 
}, 
関連する問題