2015-05-29 67 views
0

我们有什么方法可以使用JQuery在textarea中按任意键盘键吗?如何按空格键然后在textarea中退格键:使用JQuery?

在我的情况下使用 有许多文字区域拥有100身高,默认情况下onload事件(一些问题与jQuery自动调整被一些开发商,而我没有权限更改,我无权更改)设置。 textarea中显示了一些文本。如果仅少说10个字符,textarea的高度将保持不变。

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

所以我想jQuery的火灾按键(空间然后退格)加载所有textareas。我们有什么方法可以使用JQuery在textarea中按任何键盘键吗?

+0

尝试https://api.jquery.com/keypress/ – Pugazh

+1

@Pugazh:这是按键并不像onkeypress事件的事件吗?任何示例? – fatherazrael

回答

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); 
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); 
}); 
+0

它不适合我。什么都没发生。只是一个评论,即使我删除触发器(E)。我无法在textarea中找到空间。从逻辑上讲,它应该在那里? – fatherazrael

+0

@fatherazrael它触发一个事件,以便您可以在您的代码中使用该keydown值。它实际上并没有在文本框中输出关键字。 – TeeDeJee

+0

@fatherazrael $('textarea')。val('test');这会改变textarea的大小吗? – TeeDeJee