2010-12-06 107 views
0

我正在驗證用戶的電子郵件地址。但是當我打電話給這個函數時出現了問題,並且表單沒有驗證郵件地址就提交了。請告訴我該代碼有什麼問題。電子郵件驗證問題

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

回答

0

始終返回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)"> 
0
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; } 

試試!