我有一个页面,我有一个表,每行包含3个文本框,我在页面底部有一个添加行按钮,通过点击这个应该向表中添加一个新行,但它仅当表中的所有输入都不为空时才应触发此操作。无论如何,我已经做了一点点,但它对我不起作用。任何人都可以查看我的代码并帮助我找出问题所在吗?
我在JQuery中所做的工作如下所示
// Add functionality Scripts
$('#teacherAdd').live('click', function(event) {
if(IsValidTableContent()){
// my code to add new row
return false;
}else{
event.preventDefault();
}
});
function IsValidTableContent(){
var isvalid = false;
$('#adminList tbody tr td input:text').each(function(){
if($(this).val() == ''){
return isvalid;
}else{
isvalid = true;
return isvalid;
}
});
return isvalid;
}
也类似你能否说明如何遍历表格中的选择框以检查是否选择了第一个选项?
答案 0 :(得分:5)
这样的事情应该有效(如果您的选择器是正确的):
function IsValidTableContent(){
var isvalid = true;
$('#adminList tbody tr td input:text').each(function(){
if ($(this).val() === '') {
isvalid = false;
return false; // breaks out of each loop
}
});
return isvalid;
}
可替换地:
function IsValidTableContent(){
return $('#adminList tbody tr td input:text').filter(function() { return $(this).val() === '';}).length === 0;
}
答案 1 :(得分:0)
我注意到的第一件事就是你将isvalid设置为true,如果是,然后为所有其余部分返回true,因为你没有重置它,只返回true;或者返回false;并跳过变量设置。
修改
好的,我看到你要做的事情,变量是倒退的。你想从true开始,如果有的话,将它设置为false,然后它将返回false。目前,如果有的话,即使其他人都是假的,它也会返回true。
答案 2 :(得分:0)
尝试删除函数的最后一个return语句。