0
我有一個字段,用戶可以提交由逗號字符分隔的多個電子郵件。我想JS驗證,以實現兩件事情:如果用戶試圖提交什麼JS電子郵件驗證仍然提交無效的電子郵件
- ,他們得到他們必須輸入一個電子郵件警告,這個工程
- 如果用戶試圖提交任何數量的電子郵件,其中一個電子郵件的格式不正確,他們得到的是一個電子郵件已不正確格式化的警告,他們必須重新提交,這是行不通
什麼用#2的情況是,如果我提交一些假像asddf
作爲電子郵件,I:
- 獲得警報耶!
- 但是,窗體仍然被提交,BOO
代碼:
$("#refer").click(function() {
var input_emails = $('#friend_emails').val();
if (input_emails === "") {
alert("Please enter at least one friend's email to send invites")
return false;
} else {
var parsed_emails = input_emails.split(',');
$.each(parsed_emails, function(index, email_value) {
var trimmed_email = $.trim(email_value)
var atpos = trimmed_email.indexOf("@");
var dotpos = trimmed_email.lastIndexOf(".");
if (atpos< 1 || dotpos<atpos+2 || dotpos+2>=trimmed_email.length) {
alert(trimmed_email + " " + "is not a valid email format, please correct and resubmit");
return false;
}
});
}
});
對於第二種情況,你不阻止無效的電子郵件的情況下,'click'事件的默認行爲。 – 2014-09-18 19:42:47
t.niese是對的。將'e'作爲參數添加到匿名點擊功能中。然後在你的代碼中,使用'e.preventDefault()'而不是'return false'。閱讀文檔:http://api.jquery.com/event.preventdefault/ – Bjorn 2014-09-18 19:44:26
@Bjorn這是不正確的,'返回false'包括'e.preventDefault()'每個這個職位:http://stackoverflow.com/questions/1357118 /事件的preventDefault-VS-返回假。我已經嘗試過這個解決方案,沒有工作 – james 2014-09-18 19:56:46