我正在使用JQuery扩展Chosen进行表格下拉列表。 我正在使用Javascript向表中添加行,但是当我添加一行时,最后一行中选择的框是唯一有效的框。澄清一下,当我说他们不工作时,我的意思是他们不会打开或关闭(如果他们是开放的)。
以下是表格的HTML:
<table id="entrytable">
<tbody id="entrytbody">
<tr>
<th>Lot</th>
<th>Time In</th>
<th>Time Out</th>
<th>Lot Condition</th>
<th>Plowed</th>
<th>Shovelled</th>
<th>Salted</th>
<th>People Who Helped You</th>
</tr>
</tbody>
</table>
以下是我用来添加行的代码:
var numRows = 0;
function addRow() {
var table = document.getElementById("entrytbody");
table.innerHTML += "<tr><td><select id='lot" + numRows + "' name='lot" + numRows + "' data-placeholder='Choose a Lot...' class='chosen-select' required><option value=''></option><option value='United States'>United States</option><option value='United States'>aawsd</option><option value='United States'>hhe</option><option value='United States'>Ugfdh</option><option value='United States'>ffy</option><option value='United States'>uhg</option></select></td><td><input name='timein" + numRows + "' type='time' required></td><td><input name='timeout" + numRows + "' type='time' required></td><td><input name='condition" + numRows + "' type='text' required></td><td><input name='plowed" + numRows + "' type='checkbox'></td><td><input name='shovelled" + numRows + "' type='checkbox'></td><td><input name='salted" + numRows + "' type='checkbox'><input name='saltamount" + numRows + "' type='number' style='width: 40px;' min=0></td><td><input name='people" + numRows + "' type='text' required></td></tr>"
$("#lot" + numRows).chosen();
numRows++;
}
addRow();
当我这样做时,页面加载有两行,它们都有效。此外,当删除调用$("#lot" + numRows).chosen();
时,之前的行仍然不起作用。
我一直试图解决这个问题几个小时,并且还搜索了一个解决方案但仍然无法修复它。
答案 0 :(得分:0)
在尝试了几个小时后,我放弃并删除了下拉菜单中的选择方面,并且在添加新行后,常规下拉列表将重置。简而言之,我通过javascript创建一个表行并将HTML注入其中来解决问题,而不是直接将其注入表中。
我不确定它为什么会奏效,但这里是经过编辑的代码:
override_tetime
我还编辑了标签以适应正在发生的真正问题