使用jQuery中的Validation插件提交后无法清除表单

时间:2010-04-20 14:20:39

标签: jquery ajax validation forms

我是jQuery的新手,我在尝试创建表单时遇到了问题。我正在使用Validation插件来验证电子邮件(表单的一个字段)。 当我单击“提交”按钮时,我想调用自己的函数,因为我想将数据保存在XML文件中。

这是我的按钮:(据我所知,插件使用“submit”来理解按钮)

<input type="submit" name="submit" class="submit" id="submit_btn" value="Send"/>

以下是验证脚本:

 <script type="text/javascript">
  $(document).ready(function() {

        //this is my form
 $("#contactForm").validate();

 /*save the valid data in the xml*/
 $(".submit").click(function() { 
 var email = $("input#email").val();
 var subject = $("input#subject").val();
 var message = $("textarea#message").val();

 if (email == "" || !$("#contactForm").valid()) {
   return false;
  }    

 var dataString = 'email='+ email + '&subject=' + subject + '&message=' + message;
 //alert("DATA: " +dataString);  

  $.ajax({
     type: "POST",
     url: "SaveData.jsp",
     data: dataString,  
     success: function(data){}   
  });

  return false;
});
});
</script>

一般来说它工作正常,但我有两个基本问题。 当我点击开头的所有表格为空的按钮时,我没有得到所需字段的消息。此外,当数据有效且我正在进行提交时,表单在提交后不会变得清晰。

如果我删除了此脚本代码,这些操作正常,但我无法保存数据!

有谁知道出了什么问题?

非常感谢!


我终于找到了一些东西。 我换了一行:

$(".submit").click(function() {....}

这一个:

submitHandler: function() { ....}

所以现在当我点击按钮时,我得到了所需字段的正确消息。我还没有发现的唯一一件事就是如何在提交后清除表格。 我知道如何在其他函数中手动执行此操作,但我看到插件也执行此操作。所以我认为使用插件所具有的可能更好。

所以有人知道这是错的吗?

由于

1 个答案:

答案 0 :(得分:1)

首先,存储对验证器的引用,如下所示:

var validator =  $("#contactForm").validate();

$.ajax success处理程序或其他地方(如果需要),您可以这样说:

validator.resetForm();

You can read the docs for .resetForm() here