【问题标题】:How to press space key and then backspace key in a textarea: using JQuery?如何在文本区域中按空格键然后退格键:使用 JQuery?
【发布时间】:2015-06-12 15:09:36
【问题描述】:

我们有什么方法可以使用 JQuery 在 textarea 中按任何键盘键吗?

在我的案例中的用法 有许多文本区域的高度为 100,默认设置为 onload(一些开发人员使用的 JQuery Autosize 存在一些问题,我无权更改,我无权更改)。 textarea 中显示了一些文本。如果少于 10 个字符,则 textarea 的高度将保持不变。

现在,当最终用户单击 Textarea 然后按任意按钮进行编辑时,突然 textarea 会调整到正常高度。

所以我希望 jquery 在加载所有文本区域时触发按键(空格然后退格)。我们有什么方法可以使用 JQuery 在 textarea 中按任何键盘键吗?

【问题讨论】:

  • @Pugazh:这个按键不是像 onKeyPress 这样的事件吗?有什么例子吗?

标签: javascript jquery html


【解决方案1】:

您可以使用trigger 事件。见我的jsfiddle

$("textarea").each(function(){
    var d = $.Event('keydown');
    var e = $.Event('keydown');
    d.which = 32; // space
    e.which = 8; // backspace
    this.focus();
    this.trigger(d);
    this.trigger(e);
}

手动触发调整大小:

$('textarea').each(function(){
    var evt = document.createEvent('Event');
    evt.initEvent('autosize:update', true, false);
    $(this).dispatchEvent(evt);
});

销毁自动调整大小:

$('textarea').each(function(){
    var evt = document.createEvent('Event');
    evt.initEvent('autosize:destroy', true, false);
    $(this).dispatchEvent(evt);
});

【讨论】:

  • 它对我不起作用。什么都没发生。只是评论,即使我删除触发器(e)。我无法在 textarea 中找到空间。逻辑上它应该在那里?
  • @fatherazrael 它会触发一个事件,因此您可以在代码中使用该 keydown 值。它实际上并没有在文本框中打印密钥。
  • @fatherazrael $('textarea').val('test');这对调整 textarea 的大小有用吗?
  • 情况:目前,如果我在 textarea 中输入一些文本然后保存。在 textarea 中出现与输入文本相同的页面。但是 textarea 的大小增加了一倍。当我单击 textarea 并按下键盘上的键时。大小自动出现在文本中。所以需要使用 JQuery 在 textarea 上触发按键。上面是一个很好的例子,但它仍然不能工作:(
  • @fatherazrael 我添加了自动调整大小和自动销毁功能,也许您可​​以尝试其中的一种。
【解决方案2】:

由于无法触发点击所以使用以下代码来增加和减少文本区域:

autoHeight: function(e) {
    $(e).css({'height':'auto','overflow-y':'hidden'}).height(e.scrollHeight);

},

setTimeout(function(){
        $('textarea').each(function () {
            kontroll.autoHeight(this);
        }).on('input', function () {
            kontroll.autoHeight(this);
        });
    }, 200);

【讨论】:

    猜你喜欢
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 2021-08-20
    • 1970-01-01
    • 2010-11-14
    • 2021-10-26
    相关资源
    最近更新 更多