添加行时,HTML表重置输入

时间:2017-01-21 19:18:01

标签: html input html-table row reset

我正在使用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();时,之前的行仍然不起作用。

我一直试图解决这个问题几个小时,并且还搜索了一个解决方案但仍然无法修复它。

1 个答案:

答案 0 :(得分:0)

在尝试了几个小时后,我放弃并删除了下拉菜单中的选择方面,并且在添加新行后,常规下拉列表将重置。简而言之,我通过javascript创建一个表行并将HTML注入其中来解决问题,而不是直接将其注入表中。

我不确定它为什么会奏效,但这里是经过编辑的代码:

override_tetime

我还编辑了标签以适应正在发生的真正问题