结合JQuery验证,然后是ajax发布

Tex*_*tus 2 validation ajax jquery post

我确信这很简单,但我是JQuery的新手.我使用JQuery插件来验证电子邮件地址,这是有效的,代码是:

$(document).ready(function () {
    $("#email").click(function () {
        $(this).attr({value: ''});
    });
    $("#subscribe-form").validate();
});
Run Code Online (Sandbox Code Playgroud)

我当时想要做的是使用ajax帖子发布电子邮件地址,再次这个代码在没有验证器的情况下工作正常:

$(document).ready(function () {
    $('#submit').click(function () {
        var email = $('#email').val();
        var data = "email=" + email;
        $.ajax({
            type: "POST",
            url: "subscript.php",
            data: data,
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

我似乎无法做到的是将它们两者结合起来,这样如果电子邮件有效,它就会发布.我非常感谢有关如何做到这一点的帮助.

非常感谢

Sah*_*hoo 14

.validate()可以通过传入具有各种配置选项的对象来配置.在这种情况下,submitHandler使用回调设置表单提交代码应该可以完成这项工作.

我还清理了一些示例代码,以向您展示如何编写更多惯用的jQuery.

  1. 我已经使用过jQuery.post()而不是,jQuery.ajax()因为它jQuery.ajax()是一个低级方法,仅在你想要自定义AJAX请求的行为时使用,就像我们如何自定义行为一样.validate().

  2. 表格的所有输入都可以通过调用来准备发布.serialize().这会准备一个URL编码的键值字符串name=John+Doe&email=john%40doe.com,然后可以作为POST的数据.

$(document).ready(function() {
    $('#myForm').validate({
        submitHandler: function(form) {
            $.post('subscript.php', $('#myForm').serialize());
        }
    });
}); 
Run Code Online (Sandbox Code Playgroud)