表单停止提交以进行错误检查,但在检查完成后;它不会提交。
我做了一个fiddle here来告诉你我的意思。
如果单击带有空输入的“添加”。错误显示应该。但在你纠正错误并正确填写表格之后。它无法提交,也从未点击过:alert('submitted');
我的代码:(已更新!):Fiddle here请一看
$(document).ready(function() {
required = ["id_name", "id_location", "id_start_date", "id_about"];
emptyerror = "Please fill out this field.";
$("#eventForm").submit(function(e){
e.preventDefault();
var id = $(this).attr('id');
var errorText = '';
for (i=0;i<required.length;i++) {
var input = $('#'+required[i]);
if ((input.val() == "") || (input.val() == emptyerror)) {
input.addClass("tobefixed");
input.css('border','2px solid #CF4046');
input.val(emptyerror);
} else {
input.removeClass("tobefixed");
}
}
if ($(":input").hasClass("tobefixed")) {
return false;
} else {
return true;
}
});
$(":input").focus(function(){
if ($(this).hasClass("tobefixed") ) {
$(this).val("");
$(this).removeClass("tobefixed");
$(this).css('border', '2px solid rgb(187, 209, 236)');
}
});
});
如何提交表单?感谢您的帮助。
答案 0 :(得分:2)
如果没有验证消息,您将返回,在返回前评论您的返回true或发出警报
if ($(":input").hasClass("tobefixed")) {
return false;
} else {
return true; // it goes back from here
}
除此之外,你需要评论你的最后一次
返回false
更新了fiddle
您正在放置
e.preventDefault();
虽然您没有任何验证错误,但正在停止提交表单。
请参阅此fiddle
答案 1 :(得分:1)
在警报上方删除或评论return false;
。你也强迫if / else返回那个。
答案 2 :(得分:1)
返回语句之后的代码永远不会执行。
return false;
alert('submitted'); // this never hits. Why is that?
should be
alert('submitted'); // this hits.
return false;
更新
if ($(":input").hasClass("tobefixed")) {
return false;
}
alert('submitted');