电子邮件验证问题

问题描述:

我正在验证用户的电子邮件地址。但是当我打电话给这个函数时出现了问题,并且表单没有验证邮件地址就提交了。请告诉我该代码有什么问题。电子邮件验证问题

function validateEmail(fld) { 
var error=""; 
var tfld = trim(fld.value);     
var emailFilter = /^[^@][email protected][^@.]+\.[^@]*\w\w$/ ; 
var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ; 
if (fld.value == "") { 
    fld.style.background = 'Pink'; 
    error = "You didn't enter an email address.\n"; 
} else if (!emailFilter.test(tfld)) {   
    fld.style.background = 'Pink'; 
    error = "Please enter a valid email address.\n"; 
} else if (fld.value.match(illegalChars)) { 
    fld.style.background = 'Pink'; 
    error = "The email address contains illegal characters.\n"; 
} else { 
    fld.style.background = 'White'; 
} 
return error; } 
+5

请告诉*我*(每个人)的问题是什么(即你得到了什么错误信息,或者你期望的输出以及实际输出的不同)。特别是,如果表单提交时未经验证,那么您的问题肯定存在于*表单*中,而不是与此函数一起使用,除非我误解了? – 2010-12-06 11:06:34

+0

如果我离开字段为空然后它告诉“你没有输入电子邮件地址”,但是当我输入非法字符,那么它不起作用。 – Adeel 2010-12-06 11:15:47

始终返回true或false: -

function validateEmail(fld) { 
    var error=""; 
    var tfld = trim(fld.value);     
    var emailFilter = /^[^@][email protected][^@.]+\.[^@]*\w\w$/ ; 
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ; 
    if (fld.value == "") { 
     fld.style.background = 'Pink'; 
     error = "You didn't enter an email address.\n"; 
    } else if (!emailFilter.test(tfld)) {   
     fld.style.background = 'Pink'; 
     error = "Please enter a valid email address.\n"; 
    } else if (fld.value.match(illegalChars)) { 
     fld.style.background = 'Pink'; 
     error = "The email address contains illegal characters.\n"; 
    } else { 
     fld.style.background = 'White'; 
    } 
    if (error == '') 
    { 
     return true; 
    } 
    else 
    { 
     alert(error); 
     return false; 
    } 

}

调用你的函数是这样的: -

<input type="submit" onsubmit="return validateEmail(email.val)"> 

function validateEmail(fld) { 
var error=""; 
var tfld = trim(fld.value);     
var emailFilter = /^[^@][email protected][^@.]+\.[^@]*\w\w$/ ; 
var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ; 
if (fld.value == "" || fld.value.length == 0) { 
    fld.style.background = 'Pink'; 
    error = "You didn't enter an email address.\n"; 
} else if (!emailFilter.test(tfld)) {   
    fld.style.background = 'Pink'; 
    error = "Please enter a valid email address.\n"; 
} else if (fld.value.match(illegalChars)) { 
    fld.style.background = 'Pink'; 
    error = "The email address contains illegal characters.\n"; 
} else { 
    fld.style.background = 'White'; 
} 
return error; } 

试试!