web-dev-qa-db-ja.com

jQuery Validationプラグイン-非表示の入力を検証し、表示されませんか?

JQuery Form Validationプラグインを使用して、非表示のテキスト入力と非表示のテキスト入力を検証するにはどうすればよいですか?問題は、選択したアイテムの非表示入力を生成する自動提案プラグインを使用していることです。

<input id="hiddenInput" type="hidden" name="something" value="1" />

このような2つの入力があり(どちらも1つの項目のみを許可します)、これを検証して、親<td>。これは私がこれまでに得たものですが、値が実際に数値である場合、エラーを表示したり、フォームを送信したりしません。

$("#form1").validate({
        rules: {
            something: {
                number:true,
                min:1,
                required:true
            }
        }
        })
58
ItsGreg

非表示要素の検証を許可するには、ignoreをオーバーライドし、空の文字列に設定します。

$("#form1").validate({
    ignore: "",
    rules: {
        something: {
            number:true,
            min:1,
            required:true
        }
    }
});
115
Josh

次のようなignoreオプションを使用できます。

$("#form1").validate({
    ignore: "input[type='text']:hidden",
    rules: {
        something: {
            number:true,
            min:1,
            required:true
        }
    }
});

ignoreオプションのデフォルト値は:hiddenすべての非表示フィールドと非表示フィールドを無視します(display: noneなど)

26
Emre Erkan

他の答えがうまくいかない場合は、代わりにこれを試してください。フォームのすべての無視を削除するため、非表示フィールドを含むすべてを検証します。

$.data($('form')[0], 'validator').settings.ignore = "";

設定を復元して非表示フィールドを無視するには、次のようなものを使用します。

$.data($('form')[0], 'validator').settings.ignore = "input[type='text']:hidden";

上記のコードを使用して、現在の値を読み戻すこともできます。

14
CMcClymont

非表示の入力を検証する別の方法は次のとおりです。

$("#form1").validate({
        ignore: "not:hidden",
        rules: {
            something: {
                number:true,
                min:1,
                required:true
            }
        }
});
5
lopradi