如何将jquery自动完成附加到动态更改的元素

时间:2016-02-08 17:34:24

标签: javascript jquery jquery-ui autocomplete

我有以下文本框和自动填充脚本,目前按预期工作:

HTML:

<div id="partNameCont">
     <input type='text' name="part_name" id="part_name">
</div>

jQuery的:

var autocomp    =   jQuery.noConflict();
    autocomp(document).ready(function() {

        autocomp('#part_name').autocomplete({
            source: "test.php",
            select: function(e, ui) {
                var tmp = ui.item.label;
                ui.item.label = ui.item.value;
                ui.item.value = tmp; 
                getPartCategory(ui.item.label);
            },
            open: function (e, ui) {
                var acData = autocomp(this).data('ui-autocomplete');
                acData.menu.element.find('li').each(function () {
                    var me = autocomp(this);
                    var keywords = acData.term.split(' ').join('|');
                    me.html(me.text().replace(new RegExp("(" + keywords + ")", "gi"), '<b><span style="color:#E7930D;">$1</span></b>'));
                });
            }
        });
    });

问题是我想在页面加载时将part_name设置为disabled。然后当用户为另一个选择框选择值时再次使其可用。

所以我在页面加载时有这个:

<div id="partNameCont">
     <input name="" type="text" disabled="disabled">
</div>

但是,当用户选择所需的选择框并将partNameCont更改回原始内容时,自动填充功能无效。

更新:这是我使用partNameCont更新的功能 - 我更新了整个div input元素:

function getPartName(id) {      
    var autonew_id1 =   jQuery.noConflict();
    autonew_id1.ajax({
       url: "getPartName.php",
       data: "id="+id,
       type: "POST",
       dataType: "html",
       success: function(data){
          autonew_id1('#partNameCont').html('');
          autonew_id1('#partNameCont').html(data);
       }
   });  
} 

partNameCont的新数据就是:

<input type="text" name="part_name" id="part_name" class="text-input ui-autocomplete-input" value="" autocomplete="off">

有什么建议应该对函数进行哪些修改以使其与动态更改的元素一起使用?

0 个答案:

没有答案