如何在textarea中按空格键然后退格键:使用JQuery?

时间:2015-05-29 12:11:47

标签: javascript jquery html

我们有没有办法使用JQuery在textarea中按任何键盘键?

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

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

所以我希望jquery在所有textareas上加载按键(空格然后退格)。我们有没有办法使用JQuery在textarea中按任何键盘键?

2 个答案:

答案 0 :(得分: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);
});

答案 1 :(得分:0)

由于无法触发点击,因此使用以下代码来增加和减少textarea:

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);