动态输入文本框未绑定到自动完成

发布于 2024-12-11 13:26:48 字数 1199 浏览 0 评论 0原文

我正在尝试遵循这个解决方案,但没有得到任何运气。 动态创建输入的 jQuery 自动完成

var autocomp_opt = {
    source: function (request, response) {

    $.ajax({
        url: "ServiceProxy.asmx/ByKeyWord",
        cache: false,
        data: "{ 'term':'" + request.term + "'}",
        dataType: "json",
        type: "POST",
        crossDomain: "true",
        contentType: "application/json; charset=utf-8",
        error: function (xhr, textStatus, errorThrown) {
            alert('Error: ' + xhr.responseText);
        },
        success: function (data) {
            response($.map(data, function (item) {
                return item.split(",");
            }));       
        },

        error: function (a, b, c) {

        }
    });
},
    minLength: 2
};

然后当我的输入框生成时,我尝试过...

    input = document.createElement("input");
    input.disabled = true;  
    input.className = this.FORM_INPUT_CLASS;

    $(input.id).autocomplete(autocomp_opt);
    table.rows[table.rows.length - 1].cells[1].appendChild(input);

没有错误,但似乎没有正确绑定它...如果有人有任何想法,请发帖。谢谢。

I am trying to follow this solution, but not getting any luck.
jQuery autocomplete for dynamically created inputs

var autocomp_opt = {
    source: function (request, response) {

    $.ajax({
        url: "ServiceProxy.asmx/ByKeyWord",
        cache: false,
        data: "{ 'term':'" + request.term + "'}",
        dataType: "json",
        type: "POST",
        crossDomain: "true",
        contentType: "application/json; charset=utf-8",
        error: function (xhr, textStatus, errorThrown) {
            alert('Error: ' + xhr.responseText);
        },
        success: function (data) {
            response($.map(data, function (item) {
                return item.split(",");
            }));       
        },

        error: function (a, b, c) {

        }
    });
},
    minLength: 2
};

And then when my input box gets generated, I tried...

    input = document.createElement("input");
    input.disabled = true;  
    input.className = this.FORM_INPUT_CLASS;

    $(input.id).autocomplete(autocomp_opt);
    table.rows[table.rows.length - 1].cells[1].appendChild(input);

There was no errors, but it doesn't seem to bind it correctly...if anyone has any idea-please post. thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

也只是曾经 2024-12-18 13:26:48

尝试将此行:更改

$(input.id).autocomplete(autocomp_opt);

为:

$('#' + input.id).autocomplete(autocomp_opt);

Try changing this line:

$(input.id).autocomplete(autocomp_opt);

to this:

$('#' + input.id).autocomplete(autocomp_opt);
遮了一弯 2024-12-18 13:26:48

当我添加:

    $('#fieldname").autocomplete(autocomp_opt);

在这一行之后,

    table.rows[table.rows.length - 1].cells[1].appendChild(input);

我想它只能在输入框附加到某些内容时才能注册。还值得注意的是,添加某种事件句柄 onfocus、onselect,即..,它也可以工作。尽管我怀疑,这是因为输入框此时已完全渲染/添加。

It works when I add:

    $('#fieldname").autocomplete(autocomp_opt);

after this line

    table.rows[table.rows.length - 1].cells[1].appendChild(input);

I guess it can only registered when the input box is appended to something. It's also worth noting that adding some sort of event handle onfocus, onselect, ie.., it also works. Though I suspect, it's because the input box is fully rendered/added at this point.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文