0

我正在动态生成文本框,并使用 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); 

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

提前致谢

4

2 回答 2

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()});
于 2013-04-06T08:29:29.480 回答
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); 

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

于 2013-04-06T08:25:27.557 回答