我敢肯定这很简单,但我是JQuery的新手。我正在使用JQuery插件验证电子邮件地址,此方法有效,代码为:
$(document).ready(function () { $("#email").click(function () { $(this).attr({value: ''}); }); $("#subscribe-form").validate(); });
然后,我想做的是使用ajax帖子发布电子邮件地址,同样,此代码在没有验证程序的情况下也可以正常工作:
$(document).ready(function () { $('#submit').click(function () { var email = $('#email').val(); var data = "email=" + email; $.ajax({ type: "POST", url: "subscript.php", data: data, }); }); });
我似乎无法做的是将两者结合在一起,这样,如果电子邮件有效,它将随后发布。非常感谢您提供帮助。
非常感谢
.validate()可以通过传入具有各种配置选项的对象来进行配置。在这种情况下,将submitHandler回调设置为表单提交代码即可完成这项工作。
.validate()
submitHandler
我还整理了一些示例代码,以向您展示如何编写更多惯用的jQuery。
我使用jQuery.post()而不是,jQuery.ajax()因为它jQuery.ajax()是一种低级方法,仅在您要自定义AJAX请求的行为时才使用,就像我们自定义AJAX的行为一样.validate()。
jQuery.post()
jQuery.ajax()
可以通过调用准备表单的所有输入以进行过帐.serialize()。这样会准备一个URL编码的键值字符串,例如name=John+Doe&email=john%40doe.com,然后可以将其用作POST的数据。
.serialize()
name=John+Doe&email=john%40doe.com
例
$(document).ready(function() { $('#myForm').validate({ submitHandler: function(form) { $.post('subscript.php', $('#myForm').serialize()); } }); });