jQuery选择不工作,如果动态添加

jQuery Chosen Not Work If Add Dynamically

本文关键字:如果 动态 添加 工作 选择 jQuery      更新时间:2023-09-26

我通过javascript动态添加新行,使用jQuery选择下拉框和文本框。文本框很好,但是,一行中新添加的下拉菜单不起作用(甚至不能点击)。如果我使用简单的html下拉,那么它将工作得很好。请帮助…

<table id="POITable" border="1" width="100%">
<select data-placeholder="Select Product" id="productsList" class="chosen-select" style="width:200px;" tabindex="2" onchange="getProductName();">
            <option value=""></option>
            <option value="Test1">Test 1</option>
            <option value="Test2">Test 2</option>
            </select>
                </td>
           <td><input size=25 type="text" id="latbox"/></td>
        <td><input size=25 type="text" id="lngbox" /></td>
        <td><input type="button" id="delPOIbutton" value="Delete" onclick="deleteRow(this)"/></td>
        <td><input type="button" id="addmorePOIbutton" value="Add" onclick="insRow()"/></td>
        </tr>
 </table>
Javascript

function insRow()
{
    var x=document.getElementById('POITable');
    var new_row = x.rows[1].cloneNode(true);
    var len = x.rows.length;
    new_row.cells[0].innerHTML = len;
    var inp1 = new_row.cells[1].getElementsByTagName('select')[0];
    inp1.id += len;
    inp1.value = '';
    var inp2 = new_row.cells[2].getElementsByTagName('input')[0];
    inp2.id += len;
    inp2.value = '';
    var inp3 = new_row.cells[3].getElementsByTagName('input')[0];
    inp3.id += len;
    inp3.value = '';
    x.appendChild( new_row );
}

您是否尝试过触发"chosen:updated"事件:

$('#productsList').trigger("chosen:updated");

添加新选项到select?

以后编辑:如果您使用的是旧版本的chosen,事件可能被称为" listt:updated"

这是一个CSS问题,只需将此代码片段添加到脚本

$(".chosen-container").css("min-width","220px");
相关文章: