【问题标题】:Binding autocomplete to a dynamically added form field将自动完成绑定到动态添加的表单字段
【发布时间】:2012-04-06 07:05:11
【问题描述】:

我正在尝试将 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,
    });

}

我已经检查过自动完成源可以在函数中访问,所以我很茫然。

谁能帮忙?

谢谢,

杰森

【问题讨论】:

  • 你试过.on()和delegate()吗?
  • 我没有,不。我对 jQuery 比较陌生,所以我不知道这些方法。代表看起来很有希望,谢谢。

标签: jquery dynamic input autocomplete


【解决方案1】:

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

【讨论】:

  • 啊,我明白了。我的印象是“之后”为我做了那件事。我会查找如何附加并试一试,谢谢。
  • 能否举个例子,好吗?我努力寻找答案。
猜你喜欢
  • 1970-01-01
  • 2018-01-08
  • 2021-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
  • 2011-11-08
  • 1970-01-01
相关资源
最近更新 更多