在文本框上使用延迟

时间:2010-08-13 06:39:56

标签: jquery

我正在尝试构建一个功能,其中用户在文本框中键入文本,并在延迟1秒后,键入的每个字符将转换为大写。这应该在用户输入时发生。

我可以使用jquery吗?

2 个答案:

答案 0 :(得分:0)

这可能不是最常用的jQuery方式,但是类似这样。

setInterval((function (textbox) {
    return function () {
        textbox.val(textbox.val().toUpperCase());
    }
}($("#myTextBox"))), 1000);

当然将$("#myTextBox")更改为相关选择器

答案 1 :(得分:0)

查看此问题的答案以获取更多详细信息:

How to delay the .keyup() handler until the user stops typing?

但是这里有一个完整的例子,它们都绑在一起:

$(document).ready(
    function()
    {
        var delay = (function(){
          var timer = 0;
          return function(callback, ms){
            clearTimeout (timer);
            timer = setTimeout(callback, ms);
          };
        })();

       $("#testerText").keyup(
           function()
           {
                delay(function()
                {
                    $("#testerText").val($("#testerText").val().toUpperCase());
                }, 1000);
           });
    });

http://jsfiddle.net/5Nq2f/