Jquery在多个输入和字段组上自动完成

时间:2012-07-12 13:21:57

标签: jquery ajax dynamic input

首先,对于我糟糕的jquery / ajax(和英语)知识感到抱歉。 我有这种情况: 由javascript / ajax动态创建的3个(或更多)输入标签(空):Name / Surname,Address,Contry。 我将这3个输入标签“分组”并重复1次或更多次

例如:我必须插入3个人,所以我将有3x3输入标签。

在每个“姓名/姓氏”输入标签上,我有一个“自动完成”功能。 但此功能仅更改其自己的组(名称/姓氏,地址,国家/地区)

我已经做了几次尝试,但是我无法获得这种行为:有时它只适用于最后创建的组,有时自动完成适用于所有名称/姓氏,但只有第一组被填充,有时它不起作用

这是代码(我为每个输入组创建一个div,并在每个组中创建3个输入标记。 for 循环运行的次数与人数一样多)

for (var i=0; i<list.length;i++) {
            var newdiv = document.createElement("div");
            newdiv.setAttribute("id","div"+i);
            document.getElementById("people").appendChild(newdiv);
            sndReq('persons',i,'id='+list[i]);          <-- Ajax call   

                name = "#name"+i;
                addr = "#address"+i;
                country = "#country"+i;

                $(name).live('focus', function() {
                    $(name).autocomplete({
                        source:"../common/searchdata.php",
                        select: function(event, ui){
                            $(name).val(ui.item.name);
                            $(address).val(ui.item.address);
                            $(country).val(ui.item.country);
                        },
                        minLength:2

                    });
                });



        }

ajax调用创建(除了其他东西)输入组:

$string .= "<label class='divsx'>Name/Surname: </label><input id='name".$i."'>";
$string .= "<label class='divsx'>Address:: </label><input id='address".$i."'>";
$string .= "<label class='divsx'>Country: </label><input id='country".$i."'>";
echo $string;

我认为代码非常清楚...“sndReq()”调用,有3个参数,但只有第二个对于这段代码很重要:“i”是附加到输入标记的渐进数字(name1, address1,country1,name2,address2,country2等等......)

在这种情况下,自动完成仅适用于姓氏/姓氏输入标记,并且只填写姓氏/姓氏,地址和国家/地区输入标记(这是正确的)。

0 个答案:

没有答案