我尝试在继续之前验证某些字段是否有有效输入。我想在表单提交之前仅验证几个字段。验证工作正常,并在必要时显示错误。但是当所有字段都有效时,似乎没有返回到调用函数继续?
function validateTableRow() {
$('input[name="addPid"]').valid();
$('input[name="addName"]').valid();
$('input[name="addAddress"]').valid();
$('input[name="addCity"]').valid();
$('select[name="addState"]').valid();
$('input[name="addZip"]').valid();
}
$('.button').click(function () {
if(validateTableRow()){
//Do something
}
});
}
答案 0 :(得分:2)
您的函数validateTableRow()
必须返回true
才能执行//Do something
。但是没有返回任何东西,给JS的false
,所以无论你放在if
内的什么都不会完成。
您可以根据需要更改功能以返回true
或false
:
function validateTableRow() {
return $('input[name="addPid"]').valid() &&
$('input[name="addName"]').valid() &&
$('input[name="addAddress"]').valid() &&
$('input[name="addCity"]').valid() &&
$('select[name="addState"]').valid() &&
$('input[name="addZip"]').valid();
}
$('.button').click(function () {
if(validateTableRow()){
//Do something
}
});
}
[编辑]
要在返回true
或false
之前检查所有内容,可以是这样的:
function validateTableRow() {
$('input[name="addPid"]').valid();
$('input[name="addName"]').valid();
$('input[name="addAddress"]').valid();
$('input[name="addCity"]').valid();
$('select[name="addState"]').valid();
$('input[name="addZip"]').valid();
return $('input[name="addPid"]').valid() &&
$('input[name="addName"]').valid() &&
$('input[name="addAddress"]').valid() &&
$('input[name="addCity"]').valid() &&
$('select[name="addState"]').valid() &&
$('input[name="addZip"]').valid();
}
$('.button').click(function () {
if(validateTableRow()){
//Do something
}
});
}
答案 1 :(得分:1)
您没有从方法中返回任何内容。
制作它(假设valid
方法返回一个布尔值)
function validateTableRow() {
return $('input[name="addPid"]').valid() && $('input[name="addName"]').valid() && $('input[name="addAddress"]').valid() && $('input[name="addCity"]').valid() && $('select[name="addState"]').valid() && $('input[name="addZip"]').valid();
}
$('.button').click(function () {
if(validateTableRow()){
//Do something
}
});
}