JQUERY在键入时将文本框的内容复制到字段
我试图在用户输入时同时将文本框的内容复制到div中。 这是JSFIDDLE上的代码正面临的错误是, div中复制的值的长度总是比文本框的长度少一个 。 我在剧本中犯了什么错误?
请改用keyup
。
$("#boxx").keyup(function(event) { var stt = $(this).val(); $("div").text(stt); });
keypress
该键时发生keypress
,并且您希望在释放该键时传输文本。
keyup和keypress事件适用于键盘输入,但如果使用鼠标右键单击并将某些内容粘贴到文本框中,则不会获取值更改。 您可以将bind
与input事件一起使用来注册keyup和paste事件,如下所示:
$("#textbox1").bind('input', function () { var stt = $(this).val(); $("#textbox2").val(stt); });
keypress
事件发生在元素中的文本更新之前。 您可以延迟复制操作以解决此问题。 即使是0毫秒的延迟也足以在元素更新后进行复制操作:
$("#boxx").keypress(function() { var $this = $(this); window.setTimeout(function() { $("div").text($this.val()); }, 0); });
这里更新了小提琴。
$("#title").keypress(function() { var $this = $(this); window.setTimeout(function() { $("#slug-url").val($this.val().toLowerCase().replace(/ /g, '-')); }, 0); });
使用@FrédéricHamidi’方法生成seo友好url后用’ – ‘替换空格并将文本更改为小写。
使用keyup并更改两者。
$("#boxx").on('keypress change', function(event) { var data=$(this).val(); $("div").text(data); });
这是http://jsfiddle.net/6HmxM/785/的例子
$("#boxx").keyup(function() { var $this= $(this); window.setTimeout(function() { $("div").text($this.val()); }, 0); });
这项工作正常。
复制也有效f9 enter code here