jQueryを使用して入力が空かどうかを確認する 質問する

jQueryを使用して入力が空かどうかを確認する 質問する

すべてのフィールドに入力したいフォームがあります。フィールドをクリックしても入力されていない場合は、赤い背景を表示したいと思います。

これが私のコードです:

$('#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 つある場合)。

おすすめ記事