使用javascript(IE bug?)在文本区域插入新行
Insert a new line to textarea using javascript (IE bug ?)
我正在尝试实现以下功能。我希望能够捕捉分号字符的击键,并在按下该键后将其更改为自动添加新行。在代码中,它看起来像这样:
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"事件),然后我停止它的正常行为,最后我在文本区域内容的末尾添加分号和换行符。
现在,在FF和Chrome上一切都很好。然而,在IE 9上,它的行为真的很奇怪——它没有添加新行。。空白。然后,如果退格这个空白并再次键入";",它将按预期工作。您可以通过首先键入一些其他字符,然后键入分号来复制它。
我还注意到,删除e.preventDefault()会删除这个问题,尽管它会将两个分号粘贴到文本区域中。有人能帮我吗?
你可以在demo 上点击我的小演示
您可以删除e.preventDefault()
并使用事件keyup
而不是keypress
。
function checkForSemicolons(e) {
var style = j$("#styleEditor").value;
var keyCode = e.keyCode ? e.keyCode : e.which;
if (keyCode == 59) {
//e.preventDefault();
var tmpStyle = j$("#styleEditor").val();
tmpStyle += "'n";
j$("#styleEditor").val(tmpStyle);
}
}
小提琴:
http://jsfiddle.net/pmzzd56w/3/
相关文章:
- onkeyup无法动态创建多个文本区域
- 具有所有样式的文本正在复制到可编辑文本区域
- 在文本区域POST后解码JSON
- 在文本区域中使用jQuery.text()保持换行符
- ng在下拉列表和文本区域提交
- 将文本插入光标所在的文本区域
- 离开页面导航后保留文本区域内容
- Javascript-在文本区域中断,但不在段落中中断
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 测试文本区域中的特定文本格式
- 文本编辑后,append函数不适用于文本区域
- 如何在ReactJs中链接下拉列表和文本区域
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- 使用JSON文件中的变量(字符串)填充文本区域
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 如何为动态创建的文本区域中输入的值更新ng模型
- 延迟高亮显示文本区域中的文本
- 将字母添加到文本区域的末尾
- TinyMCE在新添加的文本区域