我正在克隆其中一个单元格具有自动完成功能的行表。
问题是自动完成功能仅适用于我的默认行(第一行),克隆的自动完成字段不再起作用。
这是自动完成的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
});
});
我的JavaScript代码进行克隆
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>
我已经使用了类而不是ID来完成自动填充,但是它不起作用。我可以在克隆代码上添加什么以使自动完成功能起作用?
最佳答案
尝试如下,它应该工作
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,这也应该给您一个解决问题的想法。
关于javascript - Javascript自动完成克隆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23427729/