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');
}
}
});
}