【发布时间】:2015-06-06 14:25:31
【问题描述】:
如果用户没有在字段中输入@ 符号,下面的脚本假设使用 .insertAfter() 插入消息。如果用户键入的值与 invalidEmailAddresses 数组中的值匹配,此脚本也会显示错误消息。
由于某种原因,仅执行此脚本的第二部分。 如果用户键入 @ 符号,他们会收到一条消息,但如果用户键入类似于 test@yahoo.com 的地址,则不会显示一条消息。不确定我是否正确组织了代码。
$(document).ready(function(){
$("input[name='emailAddress']").blur(function(){
// Actual Email Validation function
var hasError = false;
var emailaddressVal = $("input[name='emailAddress']").val();
var invalidEmailAddresses =
['goddady.com', 'aol.com', 'yahoo.com', 'yahoo.fr'];
if ($.inArray(emailaddressVal,invalidEmailAddresses) > 0) {
$( "<span id='emailMessage'>The email provided is not from a business related domain. Please use an appropriate email address instead.</span>" ).insertAfter( "input[name='emailAddress']" );
} else {
$ ('#emailMessage').css('display','none');
}
if ($("input[name='emailAddress']").val().indexOf('@') > -1) {
$ ('#emailMessage').css('display','none');
}
else {
$( "<span id='emailMessage'>The email provided does not contain an @ symbol</span>" ).insertAfter( "input[name='emailAddress']" );
}
if(hasError == true) { return false; }
});
});
【问题讨论】:
-
你想让你的代码做什么?告诉我您的具体要求。
-
如果用户键入的值与 invalidEmailAddresses 数组中的值匹配,我想显示一条错误消息。如果用户没有输入 @ 符号,则显示错误消息。
-
我的理解是,如果用户输入 jimmy@yahoo.com 或 jimmy@aol.com 那么他应该会收到一条错误消息。对吗?
-
@Sukanya 正确!或者,如果您缺少“@”符号,您也应该得到一个错误
-
我已经在我的答案中重构了你的代码,现在应该可以工作了:)
标签: javascript jquery arrays