0

我在 WordPress 前端使用 ajax,正如本文中 wordpress codex 所建议的那样http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress/

我在本文中设置了所有内容,这是我使用的代码

$(document).ready(function(){



            jQuery("#jw_email").on("blur", function(){

            var jw_email = $(this).val();

                jQuery.post(
                    // see tip #1 for how we declare global javascript variables
                    MyAjax.ajaxurl,
                    {
                        // here we declare the parameters to send along with the request
                        // this means the following action hooks will be fired:
                        // wp_ajax_nopriv_myajax-submit and wp_ajax_myajax-submit
                        action : 'rcv-checkuser',

                        // other parameters can be added along with "action"
                        jw_email : jw_email,
                        postCommentNonce : MyAjax.postCommentNonce
                    },
                    function( response ) {
                         $("#userid").val(response);
                        console.log(response);
                    }
                );

            });





});

现在我遇到的问题是

jQuery("#jw_email").on("blur", function(){

每次页面加载时,上一行中的 blur 事件都会触发一次,并且在 blur 事件发生之前执行的函数 rcv-checkuser

然而,从第二次开始,模糊甚至按预期工作。

但是第一次加载页面时,onblur 会触发“加载时”而不是“模糊时”。

如何防止这种情况

我尝试了这个解决方案,但没有工作 jquery ajax 在加载而不是模糊时被触发

4

1 回答 1

0

我不知道您的要求是什么,但我认为即使字段为空也不应该发生此 ajax 调用,因此请尝试设置条件

if(jQuery("#jw_email").val() != ''){

jQuery(this).on("blur", function(){

var jw_email = $(this).val();

    jQuery.post(
        // see tip #1 for how we declare global javascript variables
        MyAjax.ajaxurl,
        {
            // here we declare the parameters to send along with the request
            // this means the following action hooks will be fired:
            // wp_ajax_nopriv_myajax-submit and wp_ajax_myajax-submit
            action : 'rcv-checkuser',

            // other parameters can be added along with "action"
            jw_email : jw_email,
            postCommentNonce : MyAjax.postCommentNonce
        },
        function( response ) {
             $("#userid").val(response);
            console.log(response);
        }
    );

});

}

我认为该字段在加载时将为空,因此将停止 ajax 调用

希望能帮助到你!

谢谢

于 2013-09-05T08:19:15.140 回答