我有一个有 4 列的表格和一个提交按钮。像这样:
FOOD YES NO REASON
pizza cb cb tb
fries cb cb tb
curry cb cb tb
noodle cb cb tb
[SUBMIT]
我需要的是,如果选中任何“否”框但其相应的文本框为空,则禁用该按钮。我有这个工作在一定程度上。如果你按顺序浏览每一个,那很好。因此,您对披萨说“是”,并且该按钮保持启用状态。您将其更改为否,该按钮被禁用。您提供了一个原因,然后按钮再次启用。您清除文本框并再次禁用该按钮。您更改回是并且按钮已启用。然后你对薯条做同样的事情,一切都很好。等等。
但是,如果您为所有这些选择否并提供所有原因(因此启用按钮),但随后清空披萨的文本框,则该按钮不会像应有的那样被禁用。但是,如果您清除面条,那就可以了。
我一直在尝试做的是每次单击复选框或在“原因”列中的 keyup 时循环遍历表格,但我对 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');
}
}
});
}