将动态文本框绑定到jquery-ui自动完成

时间:2013-04-06 08:03:48

标签: jquery jquery-ui jquery-ui-autocomplete

我正在动态生成文本框,并使用ajax从服务器加载数据。我想使用jquery-ui插件实现自动完成,但不知何故它不适用于动态文本框

var url = "<?php echo Yii::app()->request->baseUrl; ?>?r=product/getProduct";
    $.get(url,function(model){
    prodList = $.parseJSON(model);
});

msg = '<table><tr><td>Item</td></tr>';
for(var i=1;i<=rows;i++){
    msg = msg + '<tr>';
    msg = msg + '<td><input type="text" class="span5" id="Name_' + i + '" ></td>';
    msg = msg + '</tr>';
    $(  "#Name_" + i ).autocomplete({ source: prodList});
}
msg = msg + '</table>';
$('#form').html(msg); 

但是,文本框自动完成功能不起作用。请帮助

提前致谢

2 个答案:

答案 0 :(得分:0)

我刚刚意识到我的愚蠢错误。

function AutoComplete(rows)
{
    for(var i=1;i<=rows;i++){
       $( '#Name_' + i ).autocomplete({source: prodList });
    }
}

.......   ........

var url = "<?php echo Yii::app()->request->baseUrl; ?>?r=product/getProduct";
    $.get(url,function(model){
    prodList = $.parseJSON(model);
    AutoComplete(rows);
});

msg = '<table><tr><td>Item</td></tr>';
for(var i=1;i<=rows;i++){
    msg = msg + '<tr>';
    msg = msg + '<td><input type="text" class="span5" id="Name_' + i + '" ></td>';
    msg = msg + '</tr>';
}
msg = msg + '</table>';
$('#form').html(msg); 

现在它就像魅力......:)

答案 1 :(得分:0)

尝试使用类似的东西:

var url = "<?php echo Yii::app()->request->baseUrl; ?>?r=product/getProduct";
$.get(url,function(model){
prodList = $.parseJSON(model);
});

function displayMsg(rows, callback){
msg = '<table><tr><td>Item</td></tr>';
for(var i=1;i<=rows;i++){
msg = msg + '<tr>';
msg = msg + '<td><input type="text" class="span5 autocmp" id="Name_' + i + '" ></td>';
msg = msg + '</tr>';
    }
msg = msg + '</table>';
$('#form').html(msg);

}

function setAutocmp(){
$( ".autocmp" ).autocomplete({ source: prodList;});
}

displayMsg(rows, function(){setAutocmp()});