当我决定用经典的javascript构建普通的web表单验证时,我有一个奇怪的错误.输入文本字段有几个"onblur"处理程序和一个"form-submit"处理程序.
当我像这样使用它们时:
function loginCheck() {
... return true of false
}
function passwordCheck() {
...
}
function formValidation() {
return loginCheck() && passwordCheck();
}
Run Code Online (Sandbox Code Playgroud)
它没有像我期望的那样工作:如果loginCheck失败,"passwordCheck"从未调用过!
最后我有解决方法
function formValidation() {
ok = loginCheck();
ok &= passwordCheck();
return ok;
}
Run Code Online (Sandbox Code Playgroud)
现在执行密码检查.但是当我选择时:
function formValidation() {
ok = loginCheck();
ok = ok && passwordCheck();
return ok;
}
Run Code Online (Sandbox Code Playgroud)
如果loginCheck失败,则不会再次调用passwordCheck.
此外:loginCheck和passwordCheck返回布尔值,但是&=运算符将其转换为"0"或"1"."0"对我的onsubmit="return checkForm"处理程序不起作用.我必须再次将我的&=结果转换为布尔值:
function formValidation() {
ok = loginCheck();
ok &= passwordCheck();
return ok != 0;
}
Run Code Online (Sandbox Code Playgroud)
这是javascript引擎的正常行为?
| 归档时间: |
|
| 查看次数: |
1436 次 |
| 最近记录: |