将自动完成绑定到动态添加的表单字段

时间:2012-04-05 22:57:48

标签: jquery dynamic input autocomplete

我正在尝试将jQuery UI自动完成小部件绑定到动态添加的输入字段。我在这里阅读了一些帖子,但似乎都没有帮助。

我正在使用的代码来自Dynamically adding a form to a Django formset with Ajax,我稍微修改了它以绑定自动完成。

但是,绑定似乎不起作用。每当我输入新添加的字段时,自动完成框都不会显示。我使用的代码如下:

function cloneMore(selector, type,field) {
    var newElement = $(selector).clone(true);
    var total = $('#id_' + type + '-TOTAL_FORMS').val();
    newElement.find(':input').each(function() {
        var name = $(this).attr('name').replace('-' + (total-1) + '-','-' + total + '-');
        var id = 'id_' + name;

        if ($(this).attr('type') != 'hidden') {
            $(this).val('');
        }
        $(this).attr({'name': name, 'id': id}).removeAttr('checked');
    });
    newElement.find('label').each(function() {
        var newFor = $(this).attr('for').replace('-' + (total-1) + '-','-' + total + '-');
        $(this).attr('for', newFor);
    });
    total++;
    $('#id_' + type + '-TOTAL_FORMS').val(total);
    $(selector).after(newElement);

    /* create the selector string and bind autocomplete */
    var select_string = "#id_"+type+"-"+(total-1)+"-"+field;
    $( select_string).autocomplete({
        source: asset_universe_codes,
    });

}

我已检查过该功能中是否可以访问自动完成源,所以我很茫然。

有人可以帮忙吗?

谢谢,

杰森

1 个答案:

答案 0 :(得分:1)

似乎newElement尚未附加到DOM,如果是这种情况,那么附加它(在调用自动​​完成之前)应解决您的问题。