2

非常に単純な質問があります-私は考えています-しかし、私はそれを自分で解決することはできません.

2 つのチェックボックスがあります。1 つは値が Yes で、もう 1 つは値が No です。

もう一方がチェックされているときに、一方をチェック解除するのに役立つ何らかのスクリプトが必要です。したがって、チェックボックスをオンにすると、いいえ。1 - チェックボックス番号 2 は自動的にチェックが外されます - 逆もまた同様です。チェックボックスの 1 つ (1 つだけ) を常にオンにする必要があります。いいえ-この場合、ラジオボタンは使用できません。

それがjQueryで実行できれば素晴らしいでしょう-しかし、どんな助けでもできます:)

前もって感謝します

ロバート

4

5 に答える 5

3

これを行うために私が考えることができる最も簡単な方法は、次のとおりです。

$('input:checkbox').change(
    function(){
        var group = this.name;
        $(this).siblings('input:checkbox[name="'+ group + '"][checked]').removeProp('checked');
    });

JSフィドルデモ

ただし、いくつかの注意点があります。上記removeProp()では、jQuery 1.6(およびおそらくそれ以上)に制限されているを使用しています。1.6より前では、代わりに置き換えることが可能であるはずremoveAttr('checked')です。

ただし、<input type="radio" />要素の使用を再検討してください。これは、まさにそれらが処理および操作するように設計されているものです。


ロバートからの次のコメントを編集しました(コメント、以下):

私はこれを計画どおりに機能させましたが、私のフォームには別のチェックボックスのグループがあり、名前はまったく異なりますが、それらにも制限があります。ただし、ユーザーがこれらのチェックボックスを複数選択できるようにする必要があります。スクリプトがすべてのチェックボックスグループに影響を与えるようです。実際、name = "'+ group +'"を入力すると、「group」という単語で始まる名前のチェックボックスに機能が制限されると思いました。しかし、そうではないようです。

changeイベントハンドラーを割り当てるセレクターは、ページ上のすべてのチェックボックス$('input:checkbox')を選択/適用します。

特定のグループのチェックボックスのみに適用するには、次を使用できます。

$('input:checkbox[name="checkboxGroupName"]').change(
    function(){
        $(this).siblings().removeProp('checked');
    });

参照:

于 2011-06-20T21:59:03.153 に答える
2
$("#checkbox1").bind('click', function(){ $("#checkbox2").removeAttr('checked'); });
$("#checkbox2").bind('click', function(){ $("#checkbox1").removeAttr('checked'); });
于 2011-06-20T21:49:36.690 に答える
1
    $('#checkbox_1').change(function() {

        if ($(this).is(':checked')) {
            $('#checkbox_2').prop('checked', false);
        }
        else {
            $('#checkbox_1').prop('checked', false);
            $('#checkbox_2').prop('checked', true);
        }
    });

    $('#checkbox_2').change(function() {

        if ($(this).is(':checked')) {
            $('#checkbox_1').prop('checked', false);
        }
        else {
            $('#checkbox_2').prop('checked', false);
            $('#checkbox_1').prop('checked', true);
        }
    });

編集:それは今うまくいくはずです:-)

于 2011-06-20T21:48:49.737 に答える
0
function ChkBoxClicked() {
    $("#chkBoxList_0").bind('click', function () { $("#chkBoxList_1").removeAttr('checked'); });
    $("#chkBoxList_1").bind('click', function () { $("#chkBoxList_0").removeAttr('checked'); }); 

    if (($('#chkBoxList_0').is(':checked')) || ($('#chkBoxList_1').is(':checked'))) {
        if ($('#chkBoxList_0').is(':checked')) { alert('chkBoxList_0'); return false; }
        if ($('#chkBoxList_1').is(':checked')) { alert('chkBoxList_1'); return false; }
    } else {
        alert('non of the chkBoxList'); return false;
    }
}

これが私がやった方法です

于 2012-08-14T09:30:03.850 に答える
0
$( document ).ready(function() {
    $( ".checkbox1" ).click(function(event) {
    $(this).parents('tr').children('td').children('.todos').prop('checked', false); 
    });
    $( ".checkbox2" ).click(function(event) {
        $(this).parents('tr').children('td').children('.checkbox1').prop('checked', false); 
    });

これは基本的に、checkbox1 がチェックされているときに、ユーザーがcheckbox2 をチェックしようとすると、checkbox1 がチェックされなくなることを示しています。

于 2015-08-03T20:54:15.507 に答える