我一直试图让我的表单进行验证(没有jquery验证)。出于某种原因,代码没有削减它,它实际上导致了我的本地环境中的一些CSS问题。
我只是试图验证四个字段并显示错误。
required = ["id_first_name", "id_last_name", "id_firmbox", "id_job_title"];
errornotice = $("#error");
emptyerror = "Please fill out this field.";
$("#startform").submit(function(){
//Validate required fields
for (i=0;i<required.length;i++) {
var input = $('#'+required[i]);
if ((input.val() == "") || (input.val() == emptyerror)) {
input.addClass("tobefixed");
input.val(emptyerror);
errornotice.fadeIn(750);
} else {
input.removeClass("tobefixed");
}
}
//if any inputs on the page have the class 'tobefixed' the form will not submit
if ($(":input").hasClass("tobefixed")) {
return false;
} else {
errornotice.hide();
requiredeturn true;
}
});
$(":input").focus(function(){
if ($(this).hasClass("tobefixed") ) {
$(this).val("");
$(this).removeClass("tobefixed");
}
});
我做了fiddle here。也许其他人可以发现我做错了什么。 (我为格式化问题道歉。我正在使用Ubuntu,一切都出错了。)
非常感谢您的帮助!
答案 0 :(得分:4)
您的代码中存在语法错误。
变化:
if ($(":input").hasClass("tobefixed")) {
return false;
} else {
errornotice.hide();
requiredeturn true;
}
要:
if ($(":input").hasClass("tobefixed")) {
return false;
} else {
errornotice.hide();
return true;
}
工作示例:http://jsfiddle.net/8YgNT/12/
我还建议你找一个好的客户端调试器,比如Firebug。这个错误在其控制台中非常明显。
答案 1 :(得分:2)
如果您在JavaScript的控制台上看到,您会看到错误是由此引起的:requiredeturn true;
在这里:
} else {
errornotice.hide();
requiredeturn true;
}
答案 2 :(得分:1)