检查表格错误;但现在表格未提交

时间:2013-05-07 19:24:03

标签: jquery html

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

我做了一个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)');
        }
    });
});

如何提交表单?感谢您的帮助。

3 个答案:

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