1

この命名規則を使用して、同じルールをhtml入力要素に追加しようとしています:

name="elements[1]"
name="elements[2]"

私はjQueryとjQuery Validation Pluginを使用しています:

var elements = $("#elementsFieldset :input");
$.each(elements, function(i, element) {
    element.rules('add', {
    required: true,
    number: true
});

しかし、残念ながら要素は、jQuery がルールを追加するために期待する種類のオブジェクトではありません。私は受け取っています:

Uncaught TypeError: Object #<HTMLInputElement> has no method 'rules'

助けてくれてありがとう。

4

2 に答える 2

3

$(this)の代わりに 使用 しelementます。

elementHTML JavaScript オブジェクトです。

ルールを追加するには、jQuery Object ie が必要です$(this)

var elements = $("#elementsFieldset :input");
$.each(elements, function(i, element) {
    $(this).rules('add', {
    required: true,
    number: true
});

またはさらに良い

var elements = $("#elementsFieldset :input");
    elements.each(function(){
        $(this).rules('add', {
        required: true,
        number: true
    });

更新しました

.each()以下のコードは、上記の例で使用されているように、複数の要素の使用にルールを適用する場合にのみ、1 つの要素に対してのみ機能します。

$("#elementsFieldset :input").rules("add", { 
  required:true,  
  number:true
});

jQuery Validation Pluginを読む- Sparkyによってコメントされた複数のフィールドに適用されるルールを追加する

jQuery 検証プラグイン

于 2013-10-07T16:03:27.717 に答える
2

これを試して、

$.each(elements, function(i, element) {
    $(this).rules('add', {// use $(this) instead of element
    required: true,
    number: true
});

または、簡単に試してみてください。

$("#elementsFieldset :input").rules("add", { 
  required:true,  
  number:true
});

名前の値の代わりにクラスを使用して、jQuery Validation を参照しadd ruleてください。class

于 2013-10-07T16:03:19.313 に答える