0

次の機能を改善するにはどうすればよいですか?

function treatFormLinks () {
    if (!$('#One input').valid() ) {
        $('#LinkOne').addClass('hasErrors');    
    }
    if (!$('#Two input').valid() ) {
        $('#LinkTwo').addClass('hasErrors');    
    }
    if (!$('#Three input').valid() ) {
        $('#LinkThree').addClass('hasErrors');  
    }
};

$("#Submit").click(function () {
    treatFormLinks();
});

たとえば、100 個の ( #One#Two.etc) コンテナーがあった場合、それぞれのケースに対して条件を作成するのはばかげています。では、どうすれば「IDセレクター依存」を少なくすることができますか。

ありがとうございました!

4

2 に答える 2

1

eachおよびtoggleClassメソッドを使用して試すことができます。

function treatFormLinks () {
   $('#One, #Two, #Three').each(function(){
      $('#Link'+this.id).toggleClass('hasErrors', !$('input', this).valid())
   })
};
于 2012-11-08T13:58:02.963 に答える
0

関連する要素が同じインデックスを持つように、入力とリンクを jQuery オブジェクトに配置します。それで:

$inputs.each(function ( i ) {
    $links.eq( i ).toggleClass( 'hasErrors', $( this ).valid() );
});
于 2012-11-08T14:05:28.433 に答える