JQUERY在输入时将文本框的内容复制到字段

时间:2011-05-28 06:35:11

标签: jquery

我正在尝试在用户输入时同时将文本框的内容复制到div中。这是THE CODE ON JSFIDDLE 面临的错误是, div中复制的值的长度始终比文本框的长度小1。我在剧本中犯了什么错误?

6 个答案:

答案 0 :(得分:21)

请改用keyup

$("#boxx").keyup(function(event) {
  var stt = $(this).val();
  $("div").text(stt);
});
按下该键并且您希望在释放该键时传输文本时,会出现

keypress

答案 1 :(得分:10)

keyup keypress 事件适用于键盘输入,但如果使用鼠标右键单击并将某些内容粘贴到文本框中,则值更改不会被接走。您可以将bind输入事件一起使用来注册 keyup 并粘贴以下事件:

$("#textbox1").bind('input', function () {
   var stt = $(this).val();
   $("#textbox2").val(stt);
});

答案 2 :(得分:6)

keypress事件发生在更新<input>元素中的文本之前。您可以延迟复制操作以解决此问题。即使是0毫秒的延迟也足以在元素更新后进行复制操作:

$("#boxx").keypress(function() {
    var $this = $(this);
    window.setTimeout(function() {
       $("div").text($this.val());
    }, 0);
});

更新了小提琴here

答案 3 :(得分:0)

$("#title").keypress(function() {
                var $this = $(this);
                window.setTimeout(function() {

                   $("#slug-url").val($this.val().toLowerCase().replace(/ /g, '-'));
                }, 0);
            });

使用@FrédéricHamidi'方法在用' - '替换空格并将文本更改为小写后生成seo友好URL。

答案 4 :(得分:0)

使用keyup并更改两者。

$("#boxx").on('keypress change', function(event) {
       var data=$(this).val();
       $("div").text(data);
});

这是一个例子 http://jsfiddle.net/6HmxM/785/

答案 5 :(得分:-3)

$("#boxx").keyup(function() {
    var $this= $(this);
    window.setTimeout(function() {
       $("div").text($this.val());
    }, 0);
});

这项工作正确。

复制也适用于f9 enter code here