2012-12-04 92 views
0

我使用表单验证这段代码,的jQuery/JavaScript表单验证工作不

$("#btnaddregistration").live("click", function(e) { 
    e.preventDefault(); 
    var errorCount = 0; 
    $("#formaddregistration").find("input").each(function(i) { 
     if ($(this).val().length == 0) { 
      errorfield = $(this); 
      errorCount++; 
      $("#modaldialogtext").text("'" + $(this).parent().parent().find("label").text() + "' cannot be left blank."); 
      $("#modal_confirmation").dialog("open"); 
      return false; 
     } 
    }); 
    if (errorCount > 0) { 
     return false; 
    } else { 
     document.forms["formaddregistration"].submit(); 
    } 
});​ 

但形式不提交。我使用了所有可能的提交方法,但是我失败了。任何想法我错了?

+5

你试过'$( “#formaddregistration”)。submit()'yet?毕竟你有jQuery可用。 – Sparky

+0

你是否在控制台部分有任何错误 –

+0

雅男人,我试过$(“#formaddregistration”)。 。它表明f [a]不是一个函数。对于这段代码,我得到的document.form.formaddregistration.submit不是一个函数。即使我有回报的真实;但仍然不适合我。 – Shyantanu

回答

-1

首先,您可以改善您的代码,这将有助于您排除故障。

如果没有提交表单,请确保选择的实际工作,即,尝试像$form.hide(),看看它是否隐藏,以确保它不是PEBCAK

var $form = $("#formaddregistration"); 
$("#btnaddregistration").on("click", function(e) { 
    var errorCount = 0; 


    $form.find("input").each(function(i) { 
     var $this = $(this); 
     if ($this.val().length < 1) { 
      errorCount++; 

      // this line also needs improving.. 
      $("#modaldialogtext").text("'" + $this.parent().parent().find("label").text() + "' cannot be left blank."); 
      $("#modal_confirmation").dialog("open"); 
      return false; 
     } 
    }); 

    if (errorCount < 1) { 
     $form.submit(); 
    } 

    return false; 
});​ 
+0

查看OP的最新评论。如果'$(“#formaddregistration”)。submit();'不适合他,你的解决方案也不会。 – Sparky

+0

不,但清理他的代码应该可以帮助他更容易地进行调试。实际上,他多次获取表单dom元素,这本身就是一个相当大的问题。我同意 – Eva

+1

,但是,答案部分仅用于解答......这就是为什么你是唯一一个发布这样的人远。否则,我们会有十个答案,每个答案都有不同的建议,猜测或疑难解答提示。 – Sparky