【问题标题】:JavaScript keypress event get end value of textareaJavaScript 按键事件获取文本区域的结束值
【发布时间】:2013-01-28 07:14:37
【问题描述】:

我想知道是否有可能在keypress 事件中获得最终结果? 目前,我正在使用keyup,因为它是在用户在 texteara 中完成文本编辑之后被激活的,但我已经编写了一个使用 Mootools 库执行类似操作的方法:

input.addEvent("keypress", function (input) {
    var previous_result = this.value;
    var end_result = this.value + input.key;
});

但是,在处理退格等特殊键时,或者用户选择使用 CTRL + a && Backspace时,这种方法很糟糕> 在这种情况下,输入元素的值不会是“空字符串”。

我很好奇,因为我观察到 Google 的搜索引擎发送 XMLHttpRequest 并在 keyup 事件触发之前更改页面。 此外,他们使用的输入设法克服了我删除整个文本的问题,同时仍然享受 keypress 的奢华。

【问题讨论】:

  • @ExplosionPills :试过了,keydown 的值落后于实际结果:

标签: javascript mootools dom-events keypress keyboard-events


【解决方案1】:

这将使它工作:

input.addEvent( "keypress", function ( input ) {    
    setTimeout(function () {
        input.value // returns the updated value
    }, 0 );    
});

现场演示:http://jsfiddle.net/yQQ5P/(我使用内置 API,因为我不了解 Mootools)

因此,您使用零超时作为产量。这使浏览器的 UI 线程有机会更新输入的值。

【讨论】:

  • 哇,刚刚用这个包裹了代码,它就像一个魅力,hvala puno!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-18
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
  • 2021-08-20
相关资源
最近更新 更多