0

約 20 のフォーム テキスト入力があります。それらのそれぞれについて、それらが存在することを確認し、次のように同じロジックを適用したいと思います。

var title = $('#title')
if (title == '') {
     title.css({
       'background-color': 'rgba(230, 89, 78, 0.07)',
    }); 
};

<input type="text" id="title" />

私が持っているテキスト入力ごとにこれを書き直すのではなく、これを「一括」で適用するにはどうすればよいですか? 理想的には、これを行うために必要なすべてのフィールドを含む変数リストが必要です: ['title', 'company', 'copyright', ...]

4

2 に答える 2

1

それらに共通のクラス(のようなvalidate)を与えてから、次を使用できます.each()

$('.validate').each(function() {
    var $this = $(this);

    if (!$this.val()) {
        $this.removeClass('valid');
        $this.addClass('invalid');
    } else {
        $this.removeClass('invalid');
        $this.addClass('valid');
    }
});

そこから、CSS でスタイルを適用します。

于 2013-01-11T00:41:22.550 に答える
0

$("#title").css() はすべての要素を列挙しますが、ID は各ページで一意であることを意図しています。クラス 'title' を追加し、代わりに $(".title").css() でクエリを実行することをお勧めします。

<input id="title1" class="title" />
<input id="title2" class="title" />
<input id="title3" class="title" />

<script type="javascript">
  $(".title")each(function(){
      if(!$(this).val()){
        $(this).css({
          'background-color': 'rgba(230, 89, 78, 0.07)',
        }); 
      }
  });
</script>
于 2013-01-11T00:40:29.527 に答える