首先,对于我糟糕的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等等......)
在这种情况下,自动完成仅适用于姓氏/姓氏输入标记,并且只填写姓氏/姓氏,地址和国家/地区输入标记(这是正确的)。