Javascript 如何独立调用函数?
我有一些用于验证的函数,还有另一个名为“validation()”的函数来调用其中的所有验证函数。在提交表单之前,此函数调用,被调用的函数按顺序运行,当其中一个函数返回false时,下一个函数不调用。我的要求是,我怎样才能独立地给他们打电话?Javascript 如何独立调用函数?,javascript,Javascript,我有一些用于验证的函数,还有另一个名为“validation()”的函数来调用其中的所有验证函数。在提交表单之前,此函数调用,被调用的函数按顺序运行,当其中一个函数返回false时,下一个函数不调用。我的要求是,我怎样才能独立地给他们打电话? 下面是我的一段代码: function IsEmail() { rows = document.getElementById('txtRows').value.split('#'); types = document.getElementB
下面是我的一段代码:
function IsEmail() {
rows = document.getElementById('txtRows').value.split('#');
types = document.getElementById('txtTypes').value.split('#');
var CorrectFormat = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
msg_req = "";
var flg = true;
for (i = 0; i < rows.length; i++) {
if (types[i] == "email") {
var ctrl_val = document.getElementById('ctrl-' + i).value;
if (!CorrectFormat.test(ctrl_val)) {
msg_req += "invalid format ! \n";
flg = false;
}
}
}
if (flg)
return true;
else
return false;
}
function validations() {
if (!(required_field()) || !(Is Email())) {
var str = "there are some errors :\n";
if (msg_req != "") {
str += msg_req;
alert(str);
}
msg_req = "";
return false;
}
else {
msg_req = "";
return true;
}
}
函数IsEmail(){
行=document.getElementById('txtRows').value.split('#');
types=document.getElementById('txtTypes').value.split('#');
var CorrectFormat=/^([A-Za-z0-9\-\.])+\@([A-Za-z0-9\-\.])+\.([A-Za-z]{2,4})$/;
msg_req=“”;
var flg=真;
对于(i=0;i
问题在于,由于您使用的是|
运算符,一旦有一个条件返回false并被否定,javascript引擎的逻辑操作将变为true,因此将不会执行进一步的函数
function validations() {
var valid = required_field();
valid = isEmail() && valid;
if (!valid) {
var str = "there are some errors :\n";
if (msg_req != "") {
str += msg_req;
alert(str);
}
msg_req = "";
return false;
}
else {
msg_req = "";
return true;
}
}
我可能错了,但这两个函数(required_field和isEmail)似乎有一个副作用,即更改名为msg_req的实例变量。我不太喜欢这样的事情,最好将结果附加到局部变量msg_req,如果您首先检查变量是否为空。
var requiredBool = required_field();
var isEmailBool = isEmail();
if(!requiredBool || !isEmailBool )
{
...
{