我正在克隆一个行表,其中一个单元格上有自动完成功能。 问题是自动填充仅适用于我的默认(第1行)行,克隆的自动填充字段不再起作用。
这里是自动完成的jQuery代码
$(function () {
var availableTags = ["ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++", "Clojure", "COBOL", "ColdFusion", "Erlang", "Fortran", "Groovy", "Haskell", "Java", "JavaScript", "Lisp", "Perl", "PHP", "Python", "Ruby", "Scala", "Scheme"];
$(".tags").autocomplete({
source: availableTags
});
});
我的克隆代码
function insRow()
{
var x=document.getElementById('appendTable');
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]; //month
inp1.value=x.rows[a].cells[1].getElementsByTagName('select')[0].value;
inp1.id += len;
var inp2 = new_row.cells[1].getElementsByTagName('select')[1]; //day
inp2.value=x.rows[a].cells[1].getElementsByTagName('select')[1].value;
inp2.id += len;
var inp3 = new_row.cells[1].getElementsByTagName('select')[2]; //year
inp3.value=x.rows[a].cells[1].getElementsByTagName('select')[2].value;
inp3.id += len;
x.appendChild( new_row );
a++; //checker
}
克隆所在的html部分
<td>
<div class="ui-widget">
<input class="tags">
</td>
我已经使用了class而不是ID来进行自动完成,但它不起作用。我可以在克隆代码上添加什么以使自动完成工作?
答案 0 :(得分:0)
尝试如下,它应该工作
function insRow()
{
var x=document.getElementById('appendTable');
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]; //month
inp1.value=x.rows[a].cells[1].getElementsByTagName('select')[0].value;
inp1.id += len;
var inp2 = new_row.cells[1].getElementsByTagName('select')[1]; //day
inp2.value=x.rows[a].cells[1].getElementsByTagName('select')[1].value;
inp2.id += len;
var inp3 = new_row.cells[1].getElementsByTagName('select')[2]; //year
inp3.value=x.rows[a].cells[1].getElementsByTagName('select')[2].value;
inp3.id += len;
x.appendChild( new_row );
a++; //checker
$(".tags").autocomplete({
source: availableTags
});
}
请参阅此jsfiddle,这也应该让您有机会解决它。