Javascript 如何使用document.createElement(“输入”)方法使输入文本字段动态扩展?
这是我关于这个很棒的社区的第一个问题 我正在使用此javascript代码构建一个动态表:Javascript 如何使用document.createElement(“输入”)方法使输入文本字段动态扩展?,javascript,Javascript,这是我关于这个很棒的社区的第一个问题 我正在使用此javascript代码构建一个动态表: function addRow(tableID) { var table = document.getElementById(tableID); var rowCount = table.rows.length; var row = table.insertRow(rowCount); var cell1 = row.inser
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var cell1 = row.insertCell(0);
var element1 = document.createElement("input");
element1.type = "checkbox";
element1.name = "chkbox[]";
cell1.appendChild(element1);
var cell2 = row.insertCell(1);
var element2 = document.createElement("input");
element2.type = "text";
element2.name = "txtbox[]";
element2.onkeypress = "this.style.width = ((this.value.length + 1) * 8) + 'px'";
cell2.appendChild(element2);
}
和下面的html代码来打印它:
<table id="dataTable" style="width: 300px;" border="0">
<tr>
<td ><input type="checkbox" name="chk" /></td>
<td <input id="txt" type="text" onkeypress="this.style.width = ((this.value.length + 1) * 8) + 'px';"> </td>
</tr>
</table>
我的问题是-我希望文本输入字段动态扩展,但由于使用了“document.createElementinput;”在Javascript中,只有第一个文本输入字段动态扩展rest您可以定义扩展函数并在以后重用它,如下所示:
expandTextBox = function (tb) {
tb.style.width = ((tb.value.length + 1) * 8) + 'px';
}
创建元素时:
var element2 = document.createElement("input");
element2.onkeypress = function() { expandTextBox(element2); };
和html格式:
<input id="txt" type="text" onkeypress="expandTextBox(this)">
请参见在javascript中将事件添加到动态创建的元素时,必须将事件代码定义为函数而不是字符串! 因此,将addRow函数修改为:
...
element2.onkeypress = function(){this.style.width = ((this.value.length+1)*8)+'px'};
试试这个:element2.style.width=100%;Noope adding->element2.style.width=100%;不行!是的,我只是知道它不能接受字符串!非常感谢您的快速回答: