点击后可以更快地进行javascript验证吗?

时间:2011-06-15 14:45:42

标签: javascript ajax forms

所以我有一个表格:

 <form action="URL" name=myform method=post onsubmit="return validateFormOnSubmit(this)" autocomplete=off>

提交表单后,它会检查验证。

早些时候,我有这样的代码:

<script type="text/javascript">

  $(function() {
    $("#submitbutton").click(function() {

      var fname = $("input#first_name").val();
      var lname = $("input#last_name").val();
      var email = $("input#email").val();
      var leadsource = $("input#leadsource").val();
      var country = $("input#country").val();
      var phone = $("input#phone").val();
      var oid = $("input#oid").val();
      var retURL = $("input#retURL").val();
      var crazy
= $("input#00N40000001mCkP").val();
        var dataString = '&email=' + email + '&phone=' + phone + '&oid=' + oid + '&retURL=' + retURL + '&leadsource=' + leadsource + '&country=' + country;   //alert (dataString);return false;   $.ajax({
    type: "POST",
    url: "MYURL.php?first_name="
+ fname + "&last_name=" + lname,
    data: dataString, 
    success: function(response) { $(myform).submit(); }
    });
    return false;   });

  });   </script>

基本上发生的事情是,在完成真实表单之前,表单数据最初通过AJAX提交发送到不同的URL。在ajax推送成功时 - 提交表单,然后验证表单。

在ajax请求之前,我需要单击#submitbutton时表单验证。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

该代码应该可以正常工作。如果你想将它添加到元素上的onclick=属性(我不会,但如果你坚持),你可以使用这种语法来引用表单:

<input type="submit" onclick="return validateFormOnSubmit(this.parentNode)" />

您必须从e.preventDefault()函数执行return falsevalidateFormOnSubmit()(可能只有一个?)。

答案 1 :(得分:0)

看看preventDefault。此外,您可以在上面的anon函数中调用validateFormOnSubmit,如果验证没有通过,则返回false。

答案 2 :(得分:0)

你应该在你的表单标签属性周围添加一些“”,并给它一个id!

只需将您的验证功能作为按钮单击处理程序中的第一行调用:)

 $("#submitbutton").click(function(e) {
   if( validateFormOnSubmit($('#myform'))){
       //do all the posting stuff

   }
   else{
      e.preventDefault();
      return false;
    }