textarea 的 Keyup 事件
Posted
技术标签:
【中文标题】textarea 的 Keyup 事件【英文标题】:Keyup event for textarea 【发布时间】:2015-07-23 11:37:52 【问题描述】:我正在使用虚拟键盘插件http://mottie.github.io/Keyboard/。 在这里,我想在 mottie textarea 中触发一个按键事件,以便我可以使用物理键盘输入所选语言中的文本。
我试过这样的
$('textarea[name=Notes]').keypress(function (e) );
还有这样的
$("div.ui-keyboard-preview-wrapper").find('textarea[name=Notes]').keypress(function (e) );
我也试过这样
$(".ui-keyboard-preview").keypress(function (e) );
但是,它不会触发事件。有没有办法做到这一点?
【问题讨论】:
缺少相关上下文,但您尝试过委派活动吗? 你能解释一下你到底想用这段代码做什么吗?该插件会触发keyboardChange
event,每次更改输入/文本区域。如果要修改文字,there are a few examples on the Home wiki page.
【参考方案1】:
尝试input
事件,如下面的代码 sn-ps。它将跟踪textarea
字段中的更改。对于老版本的IE,可以使用propertychange
事件来跟踪变化。
示例代码 sn-ps:
$(document).on('input propertychange', "textarea[name='Notes']", function ()
alert("Text Updated");
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<textarea name="Notes" rows="4" cols="50">
Your text
</textarea>
注意:
input
事件将在文本区域的内容发生时触发 改变。但它不会保存的按键信息event.which
。相反,您可以使用keypress
或keydown
或keyup
事件单独跟踪关键代码。
但是对于虚拟键盘,您可以尝试类似Fiddle
希望对你有帮助!
【讨论】:
谢谢约翰。现在关键事件正在触发。但是遇到另一个问题。 e.which 和其他一些属性未定义。在我的程序中,我还检查用户是否按下了特殊键,如 shift 和 ctrl。而且这些属性也即将未定义。如何解决? @Bhola 请检查一下。 ***.com/questions/17384218/jquery-input-event 对我之前未经测试发布的评论感到遗憾。希望您现在已经理解了这个概念。 再次感谢约翰。我从这个链接中得到了这个想法,最后我想出了 $(document).on('keypress',"textarea[name='Notes']", function (e) ); .我也是第一次知道 input 事件。从我这边+1。谢谢 @Bhola 欢迎您。以上是关于textarea 的 Keyup 事件的主要内容,如果未能解决你的问题,请参考以下文章
jQuery Cleditor 在 keyup 上获取 textarea 值