一尘不染

结合JQuery Validation和Ajax发布

ajax

我敢肯定这很简单,但我是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,
        });
    });
});

我似乎无法做的是将两者结合在一起,这样,如果电子邮件有效,它将随后发布。非常感谢您提供帮助。

非常感谢


阅读 282

收藏
2020-07-26

共1个答案

一尘不染

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

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

  1. 我使用jQuery.post()而不是,jQuery.ajax()因为它jQuery.ajax()是一种低级方法,仅在您要自定义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());
        }
    });
});
2020-07-26