2

家族に「別の大人を追加」したい場合などに、HTMLのブロックを動的に追加するフォームがあります。

各フィールドに一意の名前を付けたいので、カウンターを使用しています。最初の成人の名フィールドは「firstName1」、2番目の「firstName2」などです。

フィールドにカスタムメッセージを追加したいので(そしてValidateプラグインにはmessages()メソッドがありません)、HTMLがDOMに追加された直後にルールを追加しようとしています。

これはテキスト入力では正常に機能しますが、選択した要素に対してエラーをスローします-'TypeError:disundefined'。

例えば:

$("input[name='city" + counter + "']").rules("add", {required:true, messages: {required:"Please enter a city."
}});

... 正常に動作します。だが ...

$("input[name='state" + counter + "']").rules("add", {required:true, messages: {required:"Please enter a state."
}});

...選択ボックスを識別し、エラーをスローします。

動作は一貫しています。追加されるいくつかの選択があり、上記の方法でそれらのいずれかにルールを追加すると、エラーがスローされます。

すべての選択ボックスには「」の値を持つ初期オプションがあるため、必要な検証は正しく機能するはずです。

しかしもちろん、チャンスはありません。ルールが追加されると、エラーがスローされます。

なぜこれが起こっているのか誰かが知っていますか?

4

1 に答える 1

4

選択の場合は、select[name=foo]代わりにinput[name=foo]次を使用する必要があります。

$("select[name='state" + counter + "']").rules("add", {required:true, messages: {required:"Please enter a state."
}});
于 2012-10-23T21:44:26.383 に答える