0

排他的なチェックボックスを使用するフォーム (WordPress プラグイン、Contact 7、fyi) があります。yes と no の 2 つのチェックボックスの選択肢があります。はいとチェックされた場合、有効にするテキスト フィールドがあります (デフォルトで無効にしています)。彼らが「いいえ」をチェックした場合、有効にしている2つのボックスを含む2番目の専用チェックボックスがあります(これもデフォルトで)。ご想像のとおり、ユーザーが [はい] を選択すると、2 番目のチェックボックスも無効にする必要があります。いいえを選択した場合は、テキスト フィールドを無効な状態に戻します。

したがって、変更イベントを認識しないことを除いて、これは機能しています。つまり、はいをチェックするとテキスト フィールドが有効になりますが、いいえをチェックすると、他の入力要素の関連する状態は更新されません。機能を実行するには、いいえのチェックを外してから、再度チェックする必要があります。これが私のjQueryコードスニペットです:

$(document).ready(function() {
    $('p#myTextFieldHolder input:text').val('').attr('disabled', true);
    $('#mySecondCheckBoxHolder input:checkbox').attr('disabled', true);

    $("#myCheckBoxHolder input").change(function() {

        if ($(":checked").val() == "If yes, what is the estimated closing date?") {

            $('p#myTextFieldHolder input:text').val('').attr('disabled', false);
            $('#mySecondCheckBoxHolder input:checkbox').attr('disabled', true);
        } else if ($(":checked").val() == "No:") {
            $('p#myTextFieldHolder input:text').val('').attr('disabled', true);
            $('#mySecondCheckBoxHolder input:checkbox').attr('disabled', false);
        } else {
            $('p#myTextFieldHolder input:text').val('').attr('disabled', true);
            $('#mySecondCheckBoxHolder input:checkbox').attr('disabled', true);
        }
    })
});​

これを説明して修正する方法について何か提案はありますか? ありがとうございました。

4

1 に答える 1

2

これはあなたが求めたものの例です、それが役に立てば幸いです

$(function(){
    $('#chkboxes input:checkbox').on('change', function(){
        if($(this).is(':checked'))
        {
            if($(this).attr('id')=='yes')
            {         
                $('#txt1').prop('disabled', false);
                $('#chkno input:checkbox').prop('disabled', true).prop('checked', false);
                $('#no').prop('checked', false);  
            }
            else
            {
                $('#txt1').val('').prop('disabled', true);
                $('#chkno input:checkbox').prop('disabled', false);   
                $('#yes').prop('checked', false);             
            }
        }
    });
});​
于 2012-09-07T17:48:51.920 に答える