我试图在继续之前验证某些字段是否具有有效的输入。我只想在提交表单之前验证几个字段。验证工作正常,并在必要时显示错误。但是当所有字段都有效时,似乎没有返回到调用函数继续?
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
}
});
}
最佳答案
您的函数validateTableRow()
必须返回true
才能执行//Do some
。但没有返回任何东西,对于 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
}
});
}
关于javascript - 验证函数后返回 'true',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37006344/