0

4 列のテーブルと送信ボタンがあります。このような:

FOOD    YES    NO    REASON
pizza   cb     cb    tb
fries   cb     cb    tb
curry   cb     cb    tb
noodle  cb     cb    tb

[SUBMIT]

いいえボックスがチェックされているが、対応するテキストボックスが空の場合、ボタンを無効にする必要があります。私はこれをある程度機能させています。一つ一つ順番にやっていけば大丈夫です。ピザに「はい」と答えても、ボタンは有効なままです。いいえに変更すると、ボタンが無効になります。理由を入力すると、ボタンが再び有効になります。テキストボックスをクリアすると、ボタンは再び無効になります。[はい] に戻すと、ボタンが有効になります。次に、フライドポテトについても同じことを行います。等。

ただし、それらすべてに対して [いいえ] を選択し、すべての理由を入力した場合 (ボタンが有効になっているため)、ピザのテキスト ボックスを空にしても、ボタンは本来のように無効になりません。しかし、ヌードルをクリアすると、そうなります。

私がやろうとしてきたことは、チェックボックスがクリックされるか、理由列のキーアップが行われるたびにテーブルを循環することですが、私はjQueryにまったく慣れていないため、その方法が本当にわかりません...誰でもできますかヘルプ?

ありがとう。

コード:

$('input[type=checkbox]').click(function(){
        checkReasons();
}

$('input[type=text]').keyup(function(){
        checkReasons();
});

function checkReasons(){
    $('#mytable tr:not(:first)').each(function(){
        var cb = $(this).find('td:nth-child(3) input[type=checkbox]');
        var tb = $(this).find('td:nth-child(4) input[type=text]').val();
        if (cb.is(':checked')){
            if (tb.length == 0){
                $('#button').attr('disabled','disabled');                
            } else {
                $('#button').removeAttr('disabled','disabled');
            }
        } 
    });
}
4

1 に答える 1