1

15 個のフィールド (入力タイプ、選択ボックス、テキスト領域を含む) を持つフォームがあります。

通常の方法でこのフォームを検証する関数を作成できますが、それはスマート コーディングではありません。この場合はそれぞれを使用する必要があります。

これは私が考えていたことです:

$("#id1, #id2, #id3... #id15").each(function(){
    if ($(this).val == "") {
        $(this).closest("#error").css("display", "block");
    }
})

この検証は、クラス ベースまたは ID ベースのどちらにする必要がありますか?正しい方法で行っていますか? each() を正しいコンテキストで使用していますか?

4

3 に答える 3

7

ここでセレクターを使用:inputして、次のようにフォーム内のすべての入力要素を選択できます。

$("#formID :input").each(function () {
    if ($(this).val() == "") {
        $(this).closest("#error").css("display", "block");
    }
});

または、次のように検証したいすべての入力に特定のクラスを追加することもできますvalidate

$(".validate").each(function () {
    if ($(this).val() == "") {
        $(this).closest("#error").css("display", "block");
    }
});

ドキュメント: http://api.jquery.com/input-selector/

説明:すべての入力、テキストエリア、選択、およびボタン要素を選択します。

于 2013-10-29T14:32:05.727 に答える
2

または、フォーム内の id 属性を持つ任意のタグ

$('form *[id]')

または name attr はさらに良いでしょう

$('form *[name]')
于 2013-10-29T14:36:28.720 に答える
-1

複数の入力、選択、およびフォーム要素がある場合は、各要素に「input-group」などのクラスを追加してから、そのグループを反復処理します。

$("form .input-group").each(function(){
    if ($(this).val == "") {
        $(this).closest("#error").css("display", "block");
    }
})
于 2013-10-29T14:34:18.650 に答える