firefox在输入时更改文本区域的高度不起作用
firefox change height of textarea on enter not working
当用户点击回车键时,我一直在尝试更改文本区域的高度,这样他们就不必滚动了。我可以在IE和Chrome上管理它,但我不能在Firefox上运行。请看一下我的代码。我真的是个新手。它似乎不认识这个事件,我也不知道该怎么办。这是我的代码:
<form id="blog-comment-form" method="post" action="index.php">
<textarea id="comment" name="b_com" onkeyup="showmsg()" placeholder="ADD YOUR COMMENT HERE"></textarea>
<input type="submit" name="submit" value="POST COMMENT"/>
</form>
我从一个外部文件调用函数。我的javascript代码:
function showmsg() {
if(!event){
event= window.event;}
if (event.keyCode==13) {
var a = document.getElementById("comment");
var b = document.getElementById("comment").style.scrollHeight;
a.style.height = ((a.scrollHeight)+6) + "px";
}else {
var a = document.getElementById("comment");
var b = document.getElementById("testthis").style.height;
a.style.height = ((a.scrollHeight)+6) + "px";
}
}
谢谢
写这个:
function showmsg(event) {
代替:
function showmsg() {
与
写这个(在HTML标记中):
onkeyup="showmsg(event)"
代替:
onkeyup="showmsg()"
您需要将rows属性添加到文本区域。这将帮助您增加文本区域的高度
您可以用不同的方式监听keyup事件,而不是使用onkeyup属性,这也将为您创建事件对象:
document.getElementById('comment').addEventListener('keyup', showmsg);
一个工作示例:http://jsfiddle.net/rotev/FKDVD/1/
在Firefox和Chrome上测试。
您的代码出现了一些问题。在某些浏览器上,您的事件处理可能无法正常工作。
因此,首先,您需要从回调本身获取事件,而不是使用名为event的全局变量。
要调整文本区域的大小,可以使用属性列和行。
要处理该事件,可以通过以下方式附加回调:
function init(){
var e = document.getElementById("comment");
e.onkeyup = showmsg;
}
有关事件侦听器的更多信息,请查看此内容。要调整文本区域的大小,可以使用行:
function showmsg(event) {
if (event.keyCode==13) {
var a = document.getElementById("comment");
a.rows++;
}
}
要调用init,您可以将其与元素体关联:
<body onload="init()">
最后的代码看起来像:
<html>
<head>
<script>
function init(){
var e = document.getElementById("comment");
e.onkeyup = showmsg;
}
function showmsg(event) {
if (event.keyCode==13) {
var a = document.getElementById("comment");
a.rows++;
}
}
</script>
</head>
<body onload="init()">
<form id="blog-comment-form" method="post" action="index.php">
<textarea id="comment" name="b_com" placeholder="ADD YOUR COMMENT HERE"></textarea>
<input type="submit" name="submit" value="POST COMMENT"/>
</form>
</body>
</html>
相关文章:
- jquery插件或javascript方法自动调整文本输入(而非文本区域)(固定宽度)可变高度的大小
- 使用jquery调整文本区域的高度
- 如何确定素数面的InputText区域的高度
- 始终具有窗口高度的文本区域
- 如何增加highchart.js图表上x轴标签区域的高度
- text区域高度请求滚动高度流问题
- 在 JavaScript 中重置文本区域高度
- 查找文本区域的可见高度
- 动态文本区域高度
- 钛应用器动态文本区域高度增加
- 当 #content 区域长于窗口高度(本机或 Vue.js)时收听
- 文本区域只读自动高度(用所选日期填充)
- 通过自动调整内容高度来防止文本区域 ENTER 行为
- 获取用作边框区域的 ExtJS 面板的高度
- 文本区域的高度在值增加时增加,但在值减小时不会降低
- 当键入超过最大宽度时,动态扩展文本区域的高度
- 零高度文本区域不是零像素高
- 获取页面高度的未滚动区域
- 无法调整文本区域高度的大小
- 移动可查看区域的高度(地址栏和导航栏之间)