Javascript - 缓存输入文本?

时间:2015-07-16 11:31:57

标签: javascript caching input

我对javascript缓存有疑问?

有没有办法将键盘输入保存到任何对象/元素或whatelse,当焦点不在文本框上时我可以从键盘存储用户输入?

在我关注od文本框之后,我想将键入的文本自动放到文本框中?

我需要这个,例如,如果在一个文本框中存在执行约1-2秒的函数,如果我快速选择另一个文本框并立即开始输入,那么现在将在第二个文本框中键入前几个字符,因为第一个文本框中的函数仍在执行...

哪种方法最适合这种情况?

感谢。

1 个答案:

答案 0 :(得分:1)

我认为使用jQuery这很容易解决。您可以尝试使用以下代码段进行一些实验,该代码段应该完全符合您的要求:

jQuery(function() {
    var inputBuffer = "";
    
    jQuery("body").keypress(function(event) {
        // Collect input that is not being processed by an input/textarea field
        inputBuffer += String.fromCharCode(event.charCode);
    });
    jQuery("input,textarea").focus(function(event) {
        // Append buffered input to text field
        jQuery(this).val( jQuery(this).val() + inputBuffer );
        // Clear buffer
        inputBuffer = "";
    });
    jQuery("input,textarea").blur(function(event) {
        // Discard input buffer
        // Prevent from using input collected while having an input/textarea in focus
        inputBuffer = "";
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
    <p>Some non-input element</p>
</div>
<input type="text" />