所选插件不能处理表中动态创建的行
chosen plugin not working with dynamically created rows in a table
我必须说我是JQuery的初学者,但我经常尝试自己找出并解决问题。然而,现在我有一个问题,我卡住了我有一个动态添加行和选择框的表,用于单个删除或多个删除,除了添加行之外,一切都很好,但选择框不起作用,无论我做什么都不起作用。
HTML<table id="dataTable">
<tr>
<th><input type="checkbox" id="selectall" value="selectAll"/></th>
<th>Field-1</th>
<th>Field-2</th>
<th>Field-3</th>
<th>Field-4</th>
<th>Field-5</th>
</tr>
<tbody>
<tr>
<td><input type="checkbox" class="check"></td>
<td>
<select name="input-1[]" class="chosen_select_L">
<option></option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
</td>
<td><input name="input-2[]" type="text" class="chosen_text"></td>
<td><input name="input-3[]" type="text" class="chosen_text"></td>
<td><input name="input-4[]" type="text" class="chosen_text"></td>
<td>
<select name="input-5[]" class="chosen_select_M">
<option></option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
</td>
</tr>
</tbody>
</table>
<input type="button" value="Add Field" onClick="addRow('dataTable')" />
<input type="button" value="Remove Field" onClick="deleteRow('dataTable')" />
JS
$(".chosen_select_L").chosen({
disable_search_threshold: 10,
no_results_text: "Oops, nothing found!"
});
$(".chosen_select_M").chosen({
disable_search_threshold: 10,
no_results_text: "Oops, nothing found!"
});
$(document).ready(function() {
$('#selectall').click(function(event) {
if(this.checked) {
$('.check').each(function() {
this.checked = true;
});
}else{
$('.check').each(function() {
this.checked = false;
});
}
});
});
function addRow(dataTable) {
var table = document.getElementById(dataTable);
var rowCount = table.rows.length;
if(rowCount < 11){
var row = table.insertRow(rowCount);
var colCount = table.rows[1].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[1].cells[i].innerHTML;
}
}else{
alert("Maximum fields is 10.");
}
}
function deleteRow(dataTable) {
var table = document.getElementById(dataTable);
var rowCount = table.rows.length;
for(var i=2; i<rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
if(null != chkbox && true == chkbox.checked) {
if(rowCount <= 1) {
alert("Cannot Remove all fields.");
break;
}
table.deleteRow(i);
rowCount--;
i--;
}
}
}
我试着给不同的id或类名,视觉上一切看起来都很好,但不是一个单一的选择框实际上是工作的,除了在第一行不是动态创建的。
我已经创建了一个供你们查看的jsfiddle。任何帮助将不胜感激。由于
这是校正后的小提琴。你需要用
销毁chosen $(".chosen_select_L").chosen('destroy');
相关文章:
- onkeyup无法动态创建多个文本区域
- 如何使用javascript从主svg对象动态创建svg视图框
- 在动态创建的元素上获取对特定选择器的引用
- JQuery对动态创建的对象进行选择
- 使用jquery动态创建ul-li
- 从动态创建的html选择中选择所选选项
- 如何在动态创建的节点上绑定函数
- 动态创建OnClick事件Javascript
- 谷歌地图动态创建的标记点击事件使用相同的标记
- 在动态创建的标记上添加事件
- 动态创建一个javascript/jquery多级数组
- 如何动态创建许多Jquery颜色选择器(eyecon)
- 如何为动态创建的文本区域中输入的值更新ng模型
- 对动态创建的元素运行jQuery.ech()
- 使用jQuery访问动态创建的项
- 动态创建的iframe中的window.onerror在lne 0处给出脚本错误
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 我想将链接关联到动态创建的p元素上的相应文章
- AngularJs从列表中动态创建指令
- 使用javascript动态创建html内容/元素