我正在克隆其中一个单元格具有自动完成功能的行表。
问题是自动完成功能仅适用于我的默认行(第一行),克隆的自动完成字段不再起作用。

这是自动完成的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/

10-14 19:44
查看更多