问题描述
大家好,我正在尝试使用 select2 制作下拉菜单。我的 select2 下拉菜单遇到了问题。由于某种原因,select2 下拉菜单仅显示在我表格的第一行。但我不明白为什么会这样。我希望 select2 下拉菜单显示在整个管理列中,而不仅仅是第一行。
这是我的表格代码
<tbody id="myTable">
<tr class="table">
<td class="table">email</td>
<td class="table">name</td>
<td class="table">
<form>
<select id="isAdmin">
<option selected>false</option>
<option value="false">false</option>
<option value="true">true</option>
</select>
</form>
</td>
<td class="table">bhv</td>
</tr>
</tbody>
这是我的 select2 代码
var isAdmin;
$('#isAdmin').select2({
placeholder: 'Choose..',});
$("#isAdmin").on("select2:select select2:unselect",function (e) {
//this returns all the selected item
isAdmin = $(this).val();
})
解决方法
使用类而不是Id,
一个页面上不能有 2 个或更多具有相同 ID 值的项目。
<tbody id="myTable">
<tr class="table">
<td class="table">email</td>
<td class="table">name</td>
<td class="table">
<form>
<select class="isAdmin">
<option selected>false</option>
<option value="false">false</option>
<option value="true">true</option>
</select>
</form>
</td>
<td class="table">bhv</td>
</tr>
</tbody>
那么 var isAdmin; $('.isAdmin').select2({ 占位符:'选择..',}); $(".isAdmin").on("select2:select select2:unselect",function (e) { //这将返回所有选定的项目 isAdmin = $(this).val(); })