我是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() { ....}
所以现在当我点击按钮时,我得到了所需字段的正确消息。我还没有发现的唯一一件事就是如何在提交后清除表格。 我知道如何在其他函数中手动执行此操作,但我看到插件也执行此操作。所以我认为使用插件所具有的可能更好。
所以有人知道这是错的吗?
由于
答案 0 :(得分:1)
首先,存储对验证器的引用,如下所示:
var validator = $("#contactForm").validate();
在$.ajax
success
处理程序或其他地方(如果需要),您可以这样说:
validator.resetForm();