簡體   English   中英

用戶停止鍵入后自動運行js檢查用戶名的可用性不起作用

[英]auto run js check user name availability after user has stopped typing just doesn't work

用戶完成鍵入功能后,我已將itechroom checkUserName函數與JohnP的run js組合在一起,但它似乎不起作用...

$(document).ready(function(){
    //JohnyP keydowntimer
    var timer = null;
    $('#username').keydown(function(){
        clearTimeout(timer);
        timer = setTimeout(checkUserName(usercheck), 1000);
    });

    //http://www.itechroom.com
    function checkUserName(usercheck){
            $('#usercheck').html('<img src="images/ajax-loader.gif" />');
            $.post("checkuser.php", {username: usercheck} , function(data){
                if (data != '' || data != undefined || data != null){
                    $('#usercheck').html(data);
                }
            });
    }
})

我已經嘗試過onblur="checkUserName(this.value)" ,並且效果很好...

您的代碼未在任何地方為變量usercheck設置值...這是我的第一個猜測。

您似乎並沒有在任何地方聲明用戶usercheck (或者至少沒有在代碼段中設置它的值)。 似乎缺少的是...

$('#username').keydown(function () {
    var usercheck = $(this).val(); // ...this line.
    // etc.
});

但是, setTimeout也有問題。 就目前而言, checkUserName(usercheck)被立即調用,然后將返回值傳遞給setTimeout

由於需要傳遞參數,因此可以checkUserName的調用checkUserName在一個新函數中,該函數將在超時時間到期時被調用,並依次調用checkUserName

setTimeout(function () {
    checkUserName(usercheck);
}, 1000);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM