在我的表单中,我添加了一个文本框($("#seltxt")
)和一个内置文本的div。当我选择div文本进入文本框时,这工作正常。现在我在按键事件中的#seltxt中添加了功能键按压我将文本框文本复制到div。但它减少了一个字符。
示例:
当点击div时,div有文字“manojgangwar”,“manojgangwar”复制到#seltxt。现在假设我在文本框中写了字符“manojgangwar123”然后在div中它只会出现“manojgangwar12”
下面是捕获keypress事件的jQuery
//function to set text to div
$("#seltxt").keypress( function(event) {
$('#' + objid).text($("input#seltxt").val());
});
答案 0 :(得分:5)
在发生默认行为之前,按下某个键时会触发按键事件。这允许脚本通过event.preventDefault()
方法取消默认行为(例如填充输入字段)。
如果您需要在输入值发生更改时触发的事件,请使用keyup
事件。
此外,由于$("input#selText")
指向自身,您也可以使用$(this).val()
。进一步的优化包括使用this.value
,这是普遍支持的。
$("#seltxt").keyup( function(event) {
$('#' + objid).text(this.value);
});
keydown
- 在按下一个键后立即触发一次。可用于防止第一个默认事件。keypress
- 按下按键时可能多次触发。可用于防止默认行为(keydown
仅触发一次,如果按住键,将发生默认行为,除非您定义keypress
事件)keyup
- 在密钥释放后触发。使用event.preventDefault()
无法阻止键盘输入修改文本。答案 1 :(得分:1)
它正在工作......
$("#seltxt").live("keyup", function(event) {
$('#' + objid).text($(this).val());
});