我想顯示的消息是電子郵件地址僅在輸入電子郵件地址時無效,但它無效。如果沒有值輸入,我不想顯示消息 - 我只是使輸入邊框變紅。電子郵件驗證僅在輸入電子郵件時顯示消息,但不是有效的電子郵件
我試過,但它顯示的消息,即使字段爲空:
function validateEmail($email) {
var emailReg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/;
return emailReg.test($email);
}
if($(element).hasClass('email')) {
if(!validateEmail($('.email'))) {
$('<span>Please enter a valid email address</span>').insertAfter($(element));
}
}
我也試圖與qjeury驗證插件,但在這種情況下,它根本不顯示郵件錯誤所有:
var emails = ['email'];
for(var i=0;i< emails.length;i++) {
var email = emails[i];
rules[email] = {};
rules[email].email = true;
rules[email].required = true;
msgs[email] = {
required:'',
email : "Please enter a valid email address",
}
}
var validateObj = {}
validateObj["rules"] = rules;
validateObj["messages"] = msgs;
validateObj["onkeyup"] = function(element) { $(element).valid();};
validateObj["success"] = function(element) {};
validateObj["submitHandler"] = function (form) {
form.submit();
}
$("#form").validate(validateObj);
我可以」現在就進行測試,但你的jquery驗證代碼看起來很奇怪和不標準。這是一個非常常見的用例,應該有很多可以使用的代碼示例。避免使用自定義正則表達式進行電子郵件驗證,因爲它會在太多邊緣情況下失敗。 – user1751825
這不是很自定義,我使用jQuery驗證插件,它只是用這種方式寫的。我定義了對象規則,消息 - 這只是語法。 –