用JavaScript创建一个文本区
Creating a textarea with JavaScript
我尝试在div中创建一个id为" body "的文本区域。我用onClick事件调用该函数,但是当我单击它时,所创建的只是对象HTMLTextAreaElement。我怎样才能让它工作?
function opentextarea() {
var input = document.createElement('TEXTAREA');
input.setAttribute('name', 'post');
input.setAttribute('maxlength', 5000);
input.setAttribute('cols', 80);
input.setAttribute('rows', 40);
var button = document.createElement('BUTTON');
document.getElementById("body").innerHTML=input, button;
}
var div = document.getElementById("yourDivElement");
var input = document.createElement("textarea");
var button = document.createElement("button");
input.name = "post";
input.maxLength = "5000";
input.cols = "80";
input.rows = "40";
div.appendChild(input); //appendChild
div.appendChild(button);
如果您不需要访问特定的DOM函数,我建议使用innerHTML(因为它通常更快,更不容易受到内存泄漏的影响)。不要忘记正确处理引号。为了保持代码的可读性,可以用加号分隔多行:
document.getElementById("body").innerHTML =
'<textarea maxlength="5000" cols="80" rows="40"></textarea>' +
'<button></button>"':
如果您想替换内容,只需在使用appendChild
方法之前使用div.innerHTML = "";
。
你最好直接分配属性,从我记得IE有setAttribute
的问题。为了达到你想要的效果,代码可以这样修改:
function opentextarea() {
var input = document.createElement('textarea');
input.name = 'post';
input.maxLength = 5000;
input.cols = 80;
input.rows = 40;
input.className = 'myCustomTextarea';
var button = document.createElement('button');
var oBody = document.getElementById("body");
while (oBody.childNodes.length > 0) {
oBody.removeChild(oBody.childNodes[0]);
}
oBody.appendChild(input);
oBody.appendChild(button);
}
.myCustomTextarea { color: red; font-weight: bold; }
<div id="body">hello I will be replaced</div>
<button type="button" onclick="opentextarea();">Open</button>
顺便说一下,textarea
没有maxlength
来限制你必须使用JavaScript的字符,例如:如何使用JavaScript在HTML中对textArea施加maxlength
Try
document.getElementById("body").appendChild(input);
document.getElementById("body").appendChild(button);
相关文章:
- 如何将文本区和编辑区分开
- JSTree's data.rslt.obj.text()返回一个文本数组,而不是所需节点的文本
- 使用Javascript从一个文本区域逐行解析.subsr(0,6)到另一个文本区
- 如何将文本从一个文本字段复制到其他文本字段
- 单击按钮时如何聚焦下一个文本字段
- Epic编辑器可以't访问我的文本区轨道
- codeigniter:最后一个文本字段中的值重复本身或不重复't从文本字段中获取值
- 将文档的MongoDB字段合并到一个文档中
- window.opener调用函数给了我一个文档.getElementById(..)为null
- 我如何得到字符按在一个文本区
- Ajax:批量url列表在文本区发送请求一个接一个,并显示重复的答案
- 在ng-click AngularJS中添加一个文本区输入类型和字符串
- 我怎么能有一个文本区弹出时,用户单击一个按钮
- 在JavaScript中,如何拥有一个只读文本区,并仍然获得onselect事件
- 从文本区匹配一个单词
- 用JavaScript创建一个文本区
- 你可能有一个脚本在HTML文本区/文本字段,并有它执行
- 我如何有一个复选框/单选按钮张贴到一个文本区,当我点击提交按钮
- 如何使用jQuery/Javascript创建一个显示输入滑块值的动态文本区
- 如何生成一个JS编辑器/文本区,根据每个单词的长度对其进行样式化