我已经写了一些验证,它工作得很好,但我似乎无法结合所有三个功能(当调用所有函数和试图写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