Javascript 返回';正确';验证后功能
在继续之前,我正在尝试验证某些字段是否有有效的输入。在提交表单之前,我只想验证几个字段。验证工作正常,并在必要时显示错误。但当所有字段都有效时,它似乎不会返回调用函数继续Javascript 返回';正确';验证后功能,javascript,jquery,function,validation,Javascript,Jquery,Function,Validation,在继续之前,我正在尝试验证某些字段是否有有效的输入。在提交表单之前,我只想验证几个字段。验证工作正常,并在必要时显示错误。但当所有字段都有效时,它似乎不会返回调用函数继续 function validateTableRow() { $('input[name="addPid"]').valid(); $('input[name="addName"]').valid(); $('input[name="addAddress"]').valid(); $('input
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
}
});
}
您没有从您的方法返回任何内容 使其生效(假设
valid
方法返回布尔值)
您没有从您的方法返回任何内容 使其生效(假设
valid
方法返回布尔值)
您的函数
validateTableRow()
必须返回true
,才能执行//执行某些操作。但是没有向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
}
});
}
您的函数validateTableRow()
必须返回true
,才能执行//执行某些操作。但是没有向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
}
});
}
因为你不返回
任何东西…因为你不返回
任何东西…这种方法很有效。单击空白表单时,只有第一个字段显示错误消息。如果我填写该字段,然后单击,则第二个空白字段显示错误。一直到所有字段都有效,然后返回true并继续。但是只返回一个验证错误的行为似乎很奇怪?是的,正确,当某个内容为false时,运算符&&返回false,但不“读取”下一个内容。我将解释,如果您有statement1&&statement2,并且statement1为false,那么它不会执行statement2。因为整个陈述无论如何都是假的。节省时间。因此,如果第一个返回无效,它不会检查下一个是否有效。谢谢您的解释。在返回true或false之前,是否有办法检查所有6个输入?您可以将所有检查放在return语句之前,这有点脏,但应该可以工作。我会编辑答案。谢谢@Pablo Viñals,效果很好。我感谢你的帮助!这有点管用。单击空白表单时,只有第一个字段显示错误消息。如果我填写该字段,然后单击,则第二个空白字段显示错误。一直到所有字段都有效,然后返回true并继续。但是只返回一个验证错误的行为似乎很奇怪?是的,正确,当某个内容为false时,运算符&&返回false,但不“读取”下一个内容。我将解释,如果您有statement1&&statement2,并且statement1为false,那么它不会执行statement2。因为整个陈述无论如何都是假的。节省时间。因此,如果第一个返回无效,它不会检查下一个是否有效。谢谢您的解释。在返回true或false之前,是否有办法检查所有6个输入?您可以将所有检查放在return语句之前,这有点脏,但应该可以工作。我会编辑答案。谢谢@Pablo Viñals,效果很好。我感谢你的帮助!