【发布时间】:2015-02-04 11:40:43
【问题描述】:
我正在尝试实现以下功能。我希望能够捕捉分号字符的击键并将其更改为在按下此键后自动添加新行。在代码中它看起来像这样:
var keyCode = e.keyCode ? e.keyCode : e.which;
if (keyCode == 59){
e.preventDefault();
var tmpStyle = j$("#styleEditor").val();
tmpStyle += ";\n";
j$("#styleEditor").val(tmpStyle);
}
所以,首先我要抓住这个键(使用“keypress”事件),然后我要停止它的正常行为,最后我要在 textarea 内容的末尾添加分号和换行符。
现在,在 FF、Chrome 上一切正常。然而,在 IE 9 上,它的行为真的很奇怪——它没有添加新行,而是添加了 .. 空白。然后,如果退格这个空格并输入“;”它再次按预期工作。您可以先输入一些其他字符,然后输入分号来重现它。
我还注意到删除 e.preventDefault() 会消除此问题,尽管随后会将两个分号粘贴到 textarea 中。有人可以帮我吗?
你可以在DEMO上查看我的小演示
【问题讨论】:
-
试试这个:tmpStyle = ";\r\n";
-
我已经试过了,没有效果
-
你有没有把 添加到你的 html 文件的顶部,有时候这些小事很重要
-
是的,它已添加 - 放置演示的 jsfiddle 会自动处理这些事情
-
好的,你可以试试 IE 9 的 "\n/g"
标签: javascript jquery html internet-explorer textarea