Jquery 检查表单错误;但现在表格无法提交

Jquery 检查表单错误;但现在表格无法提交,jquery,html,Jquery,Html,表单停止提交以进行错误检查,但在检查完成后;它不会屈服 我做了一个演讲,想让你明白我的意思 如果单击“添加”时输入为空。错误应该显示出来。但是在你改正错误并正确填写表格之后。它无法提交且从未点击:alert('submitted') 我的代码:(已更新!):请查看 $(document).ready(function() { required = ["id_name", "id_location", "id_start_date", "id_about"]; emptyerror

表单停止提交以进行错误检查,但在检查完成后;它不会屈服

我做了一个演讲,想让你明白我的意思

如果单击“添加”时输入为空。错误应该显示出来。但是在你改正错误并正确填写表格之后。它无法提交且从未点击:
alert('submitted')

我的代码:(已更新!):请查看

$(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)');
        }
    });
});
$(文档).ready(函数(){
必需=[“id_名称”、“id_位置”、“id_开始日期”、“id_关于”];
emptyerror=“请填写此字段。”;
$(“#事件形式”)。提交(函数(e){
e、 预防默认值();
var id=$(this.attr('id');
var errorText='';

对于(i=0;iRemove或comment
return false;
紧靠警报上方。您还在上方的if/else中强制返回该移除或comment
return false;
紧靠警报上方。您还在上方的if/else中强制返回该返回语句之后的代码r执行

  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'); 

return语句之后的代码永远不会执行

  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'); 

如果没有验证消息,您将返回,请在返回前注释您的返回为真或放置警报

 if ($(":input").hasClass("tobefixed")) {
            return false;
        } else {
            return true; // it goes back from here
        }
除此之外,您还需要评论您的最后一个问题

返回错误

更新

您正在放置

e、 预防默认值()

这将停止表单提交,尽管您没有任何验证错误


请参见此

如果没有验证消息,请在返回前注释您的返回值,或放置警报

 if ($(":input").hasClass("tobefixed")) {
            return false;
        } else {
            return true; // it goes back from here
        }
除此之外,您还需要评论您的最后一个问题

返回错误

更新

您正在放置

e、 预防默认值()

这将停止表单提交,尽管您没有任何验证错误


请参见此

此处的错误提示。
返回语句后的代码将不会执行。
返回false;警告(“我永远不会被执行!”);document.body.innerHTML=“”;
一旦执行了e.preventDefault(),您必须在完成验证后自行启动提交。此处的错误提示是什么。?返回语句后的代码将不会执行。
return false;alert(“我将永远不会执行!”);document.body.innerHTML=“”;
一旦执行e.preventDefault(),您必须在完成验证后自己启动提交。请查看此提琴:。它实际上没有提交。您的陈述是正确的,但我认为它没有解决问题。e.preventDefault()停止提交。请查看此小提琴:。它实际上没有提交。您的陈述是正确的,但我认为它没有解决问题。e.preventDefault()停止提交。请查看此提琴:。它实际上没有提交。+1这至少解决了OP使用e.preventDefault()阻止默认操作的问题;老实说,他可能只是删除了那一行,一切都会好起来。请看一下这把小提琴:。它实际上并没有提交。+1这至少解决了OP使用e.preventDefault()阻止默认操作的问题。老实说,他可能只是删除了那一行,一切都会好起来。