2012-03-16 6 views
0

を重複している場合は、風変わりな行為は、ここでjsFiddleリンクです:チェックボックスは動作しますが、入力の行は

http://jsfiddle.net/HunEj/

ですから、チェックボックスをクリックすることができ、そしてそれはその横のフィールドを有効にしますよ。しかし、チェックしたままにしておけば、次のフィールド(フィールドを有効にする)をチェックしてから、そのいずれかをオフにして、何もしません。

明らかに、私がjQueryを書いた方法のためです。チェックボックスは、重複すると同じクラス名を持ちます。それはチェックされているかどうかをチェックしています。しかし、私はそれを書き直す方法を考え出すことができないので、クリックしたものがチェックされているかどうかをチェックするだけです。

アイデア?

JS:

$('table input.activate').click(function(e) { 
    if ($(this + ':checked').length > 0) { 
     $(this).parent().parent().find('input.input-mini, input.input-small, select.input-mini').attr('disabled', false); 
    } else { 
     $(this).parent().parent().find('input.input-mini, input.input-small, select.input-mini').attr('disabled', true); 
    } 
}); 

+1

を。また、 'attr'の代わりに' prop'を使いたいかもしれません。 – Sethen

+1

それを知っていて、問題を修正しました。感謝セタン! – dallen

+0

クール!お役に立てて嬉しいです。 – Sethen

答えて

1

これは動作します:あなたはそれをやっている方法をthis.checked`ではなく `使用することができます初心者のために

$('table input.activate').click(function(e) { 
    var inputs = $(this).parent().parent() 
      .find('input.input-mini, input.input-small, select.input-mini'); 
    if (this.checked) { 
     inputs.attr('disabled', false); 
    } else { 
     inputs.attr('disabled', true); 
    } 
}); 
​ 
関連する問題