すべてのフィールドに入力したいフォームがあります。フィールドをクリックしても入力されていない場合は、赤い背景を表示したいと思います。
これが私のコードです:
$('#apply-form input').blur(function () {
if ($('input:text').is(":empty")) {
$(this).parents('p').addClass('warning');
}
});
フィールドに入力されているかどうかに関係なく、警告クラスが適用されます。
何が間違っているのでしょうか?
ベストアンサー1
$('#apply-form input').blur(function()
{
if( !$(this).val() ) {
$(this).parents('p').addClass('warning');
}
});
.length
空の文字列はいずれにせよ false と評価されるため、必ずしも必要または確認する必要はありません>0
が、読みやすさのために確認したい場合は、次のようになります。
$('#apply-form input').blur(function()
{
if( $(this).val().length === 0 ) {
$(this).parents('p').addClass('warning');
}
});
常にテキストフィールド要素で動作することが確実な場合は、 を使用できますthis.value
。
$('#apply-form input').blur(function()
{
if( !this.value ) {
$(this).parents('p').addClass('warning');
}
});
また、$('input:text')
複数の要素を取得する場合は、コンテキストを指定するか、this
単一の要素への参照だけが必要な場合はキーワードを使用することに注意してください (コンテキストの子孫/子にテキストフィールドが 1 つある場合)。