我有功能检查动态输入字段和某个类。这些字段需要电子邮件地址,以便检查它是否是有效的电子邮件地址。
可能有许多电子邮件字段,如果其中一个电子邮件地址测试失败,则应返回FALSE
,否则应返回TRUE
。最后,当提交点击save_form()
时。如果它得到false
,它应该停止,否则继续。但它总是“未定义”。
这就是我所拥有的:
function validate_email_string(email_address) {
var emailReg=/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var emailTest = emailReg.test(email_address);
var result = (emailTest === false) ? false : true;
return result;
}
function validate_email_extensions(email_field_selector, message) {
var invalid_message = null;
if (typeof message !== "undefined") {
invalid_message = message;
} else {
invalid_message = '<?=lang("i18n_invalid_email_address");?>';
}
var email_fields_length = $(email_field_selector).length;
var is_valid = true;
if (email_fields_length) {
$(email_field_selector).each(function(index, el) {
if($(el).val()) {
if(!validate_email_string($(el).val())) {
is_valid = false;
}
if (index === email_fields_length - 1) {
if (is_valid === false) {
Interact.show(invalid_message);
}
return is_valid;
}
} else {
if (index === email_fields_length - 1) {
if (is_valid === false) {
Interact.show(invalid_message);
}
return is_valid;
}
}
});
} else {
return is_valid;
}
}
function save_form() {
var emails = validate_email_extensions('.jq-extension-email');
if(!emails){return false}
....
但是validate_email_extensions
函数返回undefined。我把console.log()
放在任何地方,可能它对我一无所知,但任何帮助都非常感激。
答案 0 :(得分:3)
您的回复是从您的回复转移到validate_email_extensions
,而不是从validate_email_extensions
到save_form
,正如您所期望的那样。
validate_email_extensions
需要将值恢复为save_form
。
您的函数正确返回值的唯一时间是FALSE
if (email_fields_length) {
当控件进入if
条件时,它不返回任何值。