我正在使用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调用同步,但它不起作用。
感谢您的帮助。
答案 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
});