【问题标题】:Prototype: how to get new input value after some key pressed?原型:按下某个键后如何获取新的输入值?
【发布时间】:2023-03-29 05:25:01
【问题描述】:

我想在客户按下任意键后查看电子邮件。这是我的代码:

document.observe("dom:loaded", function() {
   $('billing:email').observe('keypress', function(event){
        console.log(event.element().value);
   });
});

如果我按“D”,日志将打印“”。
如果我在按“D”后按“S” - 日志将打印“D”。

如何获取实际的当前输入值?

【问题讨论】:

    标签: javascript prototypejs dom-events


    【解决方案1】:

    Try the input event instead。尝试读取输入更改时,经典的键/向上/向下/按下事件可能会很模糊。似乎keypress 在字符打印之前触发。但是您也会错过其他事件,例如用户在文本上退格。 Quirks mode has the gory details.

    【讨论】:

    • 这不是跨浏览器事件。它在 Chrome 中不起作用。
    • 你没有指定你想要什么特定的浏览器,但它适用于我在 Chrome/IE 中就好了。 jsfiddle.net/stofte/DpYBZ
    【解决方案2】:

    keyup 事件上尝试它,并将 this 设置为事件发生的元素,以便您可以清理它

    document.observe("dom:loaded", function() {
       $('billing:email').observe('keyup', function(){
            console.log(this.value);
       });
    });
    

    【讨论】:

      猜你喜欢
      • 2010-09-18
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多