0

更新 jQuery 検証プラグインとリモート メソッドを使用して ajax で電子メールの可用性を確認していますが、ajax が 1 回しか呼び出されない理由がわかりません。電子メールが入力されると、ajaxが電話をかけ、入力された電子メールをコンソールに出力しますが、それを削除して別の電子メールに書き込んでも何も起こりません。

HTML

<input type="text" name="on0" value="Your e-mail" class="form-field no-mr check-email">

jQuery

jQuery.validator.addMethod('defaultInvalid', function(value, element) {
    return !(element.value == element.defaultValue);
}, 'Custom Error Message for this field');

$('.checkout-form').validate({
    rules: {
        on0 : 'required defaultInvalid email'
    }
});

$('.check-email').rules("add", {
    "remote" : {
        url: 'c/',
        type: "post",
        dataType: 'html',
        data: {
            check: function() {
                return $('.check-email').val();
            }
        },
        success: function(data){
            console.log(data);
        },
        error: function(data){
            console.log(data);
        }
    }
});

ajaxが投稿するPHP

<?php 

echo $_POST['check'];

 ?>
4

2 に答える 2

3

ajax が 1 回だけ起動する理由は、jQuery 検証のリモート メソッドの成功コールバックを上書きしたためです。シンプルにして、次のようなことを試してください。

<input name="email_address"/>

スクリプト付き

<script>
$(function () {
    $('form').validate({
        rules: {
            email_address: {
                required:true,
                remote: {
                    url: "your_script.php"
                }
            }
        },
        debug: true,
        submitHandler: function () { alert('ok'); }
    });


});
</script>

そしてphpのように

<?php 

echo $_GET['email_address'] == "bob";

 ?>
于 2013-01-08T15:54:25.067 に答える
-1
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

    $(document).ready(function(){

        $('.checkout-form').validate({
            rules: {
                on0 : {
                    required : true,
                    remote : {
                        url: YOUR_HOST,
                        type: "post",
                        data: {
                            email_address: function()
                            {
                                return $("#email_address").val();
                            }
                        }
                    }
                },
            },
            messages : {
                required:"message",
                remote: "message"
            }
        });
    });
</script>

htmlで

<input type="text" name="on0" value="Your e-mail" class="form-field no-mr check-email" id="email_address"/>

そしてphpコードで

<?php 

echo $_POST['email_address'];

 ?>
于 2013-01-08T12:33:49.040 に答える