jQuery Ketchup验证规则,里面有ajax调用

时间:2012-09-19 11:30:31

标签: jquery ajax

我正在使用jQuery ketchup验证插件,可在此处找到: https://github.com/mustardamus/ketchup-plugin

它背后的基本思想将自定义验证事件(或规则)绑定到表单中的字段,并且在字段上丢失焦点后,它会触发该事件。如果验证规则返回true,则表示该字段已经过验证。

我添加了自定义验证规则:

jQuery.ketchup.validation('email_unique', _('Email is being used by another user.'), function (form, el, value) {
            $j.ajax({
                url: Routes.webshop_check_email_uniqueness_path().url,
                type: "POST",
                data: {email: el.val()},
                success: function(data) {
                    // this should always work
                    return true;
                }
            });
    });

但是这不起作用,它总是返回false。 我也尝试使用:async: false使我的jQuery调用同步,但它不起作用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

jQuery.ketchup.validation('email_unique', _('Email is being used by another user.'), function (form, el, value) {
        var rtn = false;
        $.ajax({
            url: Routes.webshop_check_email_uniqueness_path().url,
            type: "POST",
            async: false,
            data: {email: el.val()},
            success: function(data) {
                // this should always work
                rtn = true;
            }
        });
       return rtn
});