1

以下のように7つのチェックボックスがあります。私は次
のように 3 つのことをしようとしています。2)「1 ~ 6」のチェックボックスのいずれかが「チェック」されている場合、「いずれか」のチェックボックスは「チェック解除」する必要があります。3)番号を「チェック」してからすべてを「チェック解除」すると、「任意の」チェックボックスが「チェック」されます

1) と 2) は jquery を使用して実行できましたが、3) は実行できませんでした。

「1〜6」のチェックボックスがすべて「チェックされていない」かどうかの状態を確認できませんでした。

HTML:

<input name="deal_any" type="checkbox">any

<input name="deal" type="checkbox">1
<input name="deal" type="checkbox">2
<input name="deal" type="checkbox">3
<input name="deal" type="checkbox">4
<input name="deal" type="checkbox">5
<input name="deal" type="checkbox">6

jquery:

$("input").click(function(){
name=$(this).attr("name");
match = name.match(/any/);
if( match != null)
{
if($(this).is(':checked'))
{
   $('input[name="deal"]').attr('checked', false);
}
}
else
{
if($(this).is(':checked'))
{
   $('input[name="deal_any"]').attr('checked', false);
}
}
});

誰でもこれを行う方法を教えてもらえますか? 私の説明が明確でない場合は申し訳ありません。

皆様のご協力に感謝いたします。

4

3 に答える 3

3

あなたはこのようにすることができます

var da = $('input[name="deal_any"]'); // any checkbox
var di = $('input[name=deal]'); // other 6
// when any checkbox changes
da.change(function() {
    // if checked then uncheck all others
    if(this.checked){
        di.prop('checked',false);
    }
});
// when other 6 checkboxes change
di.change(function(){
    // if none are checked then check "deal_any" checkbox - else uncheck
    da.prop('checked',$('input[name=deal]:checked').length === 0);
}).change(); // trigger on page load

http://jsfiddle.net/W8QSW/

このようにしてユニバーサルにすることができます

var da = $('input.class_one'); // checkbox with name that ends with any
var di = $('input.class_two'); // other checkboxes that don't have any
// when any checkbox changes
da.change(function() {
    // if checked then uncheck all others
    if(this.checked){
        di.prop('checked',false);
    }
});
// when other 6 checkboxes change
di.change(function(){
    // if none are checked then check "deal_any" checkbox - else uncheck
    da.prop('checked',$('input.class_two:checked').length === 0);
}).change(); // trigger on page load

​
于 2012-12-20T21:08:22.697 に答える
2
if ($('input[name=deal]:checked').length==0) {

http://jsfiddle.net/mblase75/8MWgj/

于 2012-12-20T21:04:05.603 に答える