0

ここにあるjQueryケチャップ検証プラグインを使用しています: 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 を返します。また、次を使用してjQuery呼び出しを同期させようとしましasync: falseたが、うまくいきませんでした。

ご協力いただきありがとうございます。

4

1 に答える 1

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
});
于 2012-09-26T21:03:38.057 に答える