1

見出し A と見出し B という名前のラベルが付いた 2 つのチェックボックスがあります。見出し A のチェックボックスがオンになっている場合、見出し B のチェックボックスをアクティブにする方法を考え出そうとしています。

<input type="checkbox">
<label>HEADLINE A</label>

<input type="checkbox">
<label>HEADLINE B</label>

これは私が始めたものですが、残念ながら、それに近いものではありません。

if($("label:contains('HEADLINE A')").closest('input').is(':checked')){
$("label:contains('HEADLINE B')").closest('input').is(':checked')
} 

正規表現を使用して「見出し」という単語を照合し、適切なアクションを考え出す必要がありますか?

4

3 に答える 3

2

closest最も近い兄弟ではなく、要素の最も近い親を選択します。checked入力のプロパティを変更する場合は、のprop代わりにメソッドを使用する必要がありisます。

if ( $("label:contains('HEADLINE A')").prev('input').is(':checked') ) {
    $("label:contains('HEADLINE B')").prev('input').prop('checked', true)
} 

または:

var state = $("label:contains('HEADLINE A')").prev('input').is(':checked');
$("label:contains('HEADLINE B')").prev('input').prop('checked', state);

checked変更イベントに基づいてプロパティを変更する場合は、次のことを試すことができます。

$('input[type=checkbox]').filter(function() {
    return $(this).next().text() === 'HEADLINE A'
}).change(function() {
    $("label:contains('HEADLINE B')").prev('input').prop('checked', this.checked)
})

http://jsfiddle.net/FvLyJ/

于 2012-11-05T21:28:03.450 に答える
1

アプリケーションはhtmlの入力をマーク付きまたはマークなしで設定する必要があると思いますよね?この前提に従って、解決策は次のとおりだと思います。

var headlineA = $("label:contains('HEADLINE A')").prev('input');
var headlineB = $("label:contains('HEADLINE B')").prev('input');

headlineA.attr('disabled', true);
headlineB.attr('disabled', true);

if(headlineA.is(':checked')){
    headlineB.attr('disabled', false);
}
if(headlineB.is(':checked')){
    headlineA.attr('disabled', false);
} 

ここに表示されます。入力の 1 つを html チェック済みとして設定するだけです。

于 2012-11-05T21:39:00.460 に答える
0

これらが2つのチェックボックスしかない場合は、次のようなものを使用できます

$('input[type="checkbox"]').on('click', function() {

    var $this = $(this);

    if( $this.is(':checked')){
        $('input[type="checkbox"]').not($this).prop('checked' , true);
    }

});​

フィドル

チェック/チェックを外す場合

$('input[type="checkbox"]').on('click', function() {

    var $this = $(this);
    $('input[type="checkbox"]').not($this).prop('checked' , this.checked);
});​
于 2012-11-05T21:28:16.423 に答える