几毫秒后使用jQuery获取输入值

时间:2015-05-24 00:38:31

标签: javascript jquery ajax

我想获取输入字段的值并发送ajax请求。如果我使用keyup或keypress或更改,则该值立即可用并发送请求。我想等待用户,例如1或2秒,以便他输入整个单词然后发送ajax请求。 我的代码是这样的,以获得vlaue。感谢。

    var timeout = window.setTimeout(function() {
        $('input#search').keyup(function() {
            var key = $("#search").val();
            console.log(key);
        });

    }, 1000);
    clearTimeout(timeout);

2 个答案:

答案 0 :(得分:3)

您需要使用计时器,然后使用clearTimeout将其重置为用户键入。此代码将执行您想要的操作,此处为jsFiddle

var Timer;

function Start() {

    $('#TheInput').keyup(function () {

        clearTimeout(Timer);
        Timer = setTimeout(SendRequest, 1000);
    });
}


function SendRequest() {

    var key = $("#TheInput").val();    
    alert(key);
}

$(Start);

答案 1 :(得分:2)

每次调用该函数时,都应该清除超时并设置一个新的,试试这个:

(function () {
   var timeout = {};
   var update = function () {
     clearTimeout(timeout);
     timeout = setTimeout(function () {
       var key = $('#search').val();
       console.log(key);
     }, 1000);
   };

   $('input#search').keyup(update);
   $('input#search').change(update);
 }());