【问题标题】:Get textarea value once a key pressed按下键后获取文本区域值
【发布时间】:2021-11-05 05:50:57
【问题描述】:

我在按键事件后执行了一个函数:

$("#txtarea").keypress(function(){
    alert(document.getElementById("txtarea").value);
});

我想在每次按键后返回textarea的新文本,以便在其他javascript函数中同时使用。

这个脚本的问题是,一旦按下一个键,函数就会显示“”空字符串。

提前谢谢你。

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    尝试使用keyup 而不是keypress

    【讨论】:

    • keyup 的含义和用法不同于keypress
    • 谢谢你,我的朋友,这也很有用.. +1
    【解决方案2】:

    按键只是在分配的值之前被触发。 像所有其他事件(点击、提交等...)一样,您可以取消默认行为和“东西”

    $('#txtarea').keypress(function(event) {
        return false; // this will disable the new value assignment
    });
    

    您可以通过 event.which 找出点击了哪个按钮并使用它。

    例子:

    <input id="txtarea" />​
    
    $('#txtarea').keypress(function(e){
        var value = this.value; 
        alert(value);
        alert(value + String.fromCharCode(e.which))
    })​;
    

    JSFiddle DEMO

    你也可以使用keyup事件,但它的含义和用法不同于keypress
    注意!

    【讨论】:

    • 谢谢你的朋友,你的回答很有用,但是我用过keyup(我知道它是干什么用的)......再次感谢你+1 :)))
    【解决方案3】:

    您可以使用此代码,注意 keyup 而不是 keypress,因为这意味着该键已添加到 textarea:

    ​$('#txtarea').keyup(function() {
        alert(this.value);
    });​​​​​​​
    

    另外,不需要做document.getElementById,直接用this.value

    http://jsfiddle.net/A8XxK/1

    【讨论】:

    • keyup 有不同于keypress 的含义和用法。
    • 谢谢你的朋友,+1 ...这很有用
    【解决方案4】:

    在零长度超时后执行该行为。

    $("#txtarea").keypress(function(){
        setTimeout(function () {
            alert(document.getElementById("txtarea").value);
        }, 0);
    });
    

    【讨论】:

      猜你喜欢
      • 2013-01-28
      • 2015-09-24
      • 2019-09-01
      • 2011-04-10
      • 2011-09-26
      • 2015-04-22
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多