我已經寫了一些驗證,它工作得很好,但我似乎無法結合所有三個功能(當調用所有函數和試圖寫if語句或可能我只是誤解了某些東西),這將作出反應在$('button:submit')。attr(「disabled」,true);當所有三個字段都被驗證時,該按鈕將被啓用,當該字段的開啓未被驗證時,它將禁用按鈕。結合功能+禁用
這裏是我的代碼:
$(document).ready(function(){
var form = $("#contact-us");
var name = $("#name");
var nameInfo = $("#nameInfo");
var email = $("#email");
var emailInfo = $("#emailInfo");
var message = $("#message");
var messageInfo = $("#messageInfo");
name.blur(validateName);
email.blur(validateEmail);
message.blur(validateMessage);
name.keyup(validateName);
email.keyup(validateEmail);
message.keyup(validateMessage);
function validateEmail(){
var a = $("#email").val();
var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-][email protected][a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
if(filter.test(a)){
emailInfo.removeClass("error2");
emailInfo.text("");
return true;
}
else{
emailInfo.addClass("error2");
emailInfo.text("Wrong email");
return false;
}
}
function validateName(){
if(name.val().length < 3) {
nameInfo.addClass("error");
nameInfo.text("Wrote more than 3 characters");
return false;
}
else {
nameInfo.removeClass("error");
nameInfo.text("");
return true;
}
}
function validateMessage(){
if(message.val().length < 10) {
messageInfo.addClass("error3");
messageInfo.text("Wrote more than 15 characters");
return false;
}
else {
messageInfo.removeClass("error3");
messageInfo.text("");
return true;
}
}
});
我不想深潛太辛苦,但也許你的正則表達式是導致該問題? –
「當所有三個字段驗證時,該按鈕將被啓用」。你在哪裏啓用按鈕?我沒有在代碼中看到它。 – linstantnoodles
@NicholasHazel for循環會阻止事情發展。 – knrz