Javascript自动完成克隆

时间:2014-05-02 12:03:43

标签: javascript jquery autocomplete

我正在克隆一个行表,其中一个单元格上有自动完成功能。 问题是自动填充仅适用于我的默认(第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来进行自动完成,但它不起作用。我可以在克隆代码上添加什么以使自动完成工作?

1 个答案:

答案 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,这也应该让您有机会解决它。