我有一个页面使用单个文本字段进行初始化。在该文本字段是一个自动完成,它填充3个其他div,并提供有关从自动完成中选择的相关信息。很棒!这些字段上的jQuery,动态添加的字段和jQuery
但是,当用户按下按钮时,我也可以添加其他文本字段,就像第一个字段一样。事实上,这些动态添加的字段的自动完成功能正常,它是填充不起作用的div。但说实话,我不知道如何使它工作。
这里是精简和工作(除了二次div的填充小提琴。我希望这将有助于澄清。
https://jsfiddle.net/crhall75/aq08ujzz/#&togetherjs=Pu0RFy2Ls3
<table>
<tr>
<td>
<div class="input_fields_wrap">
<button class="add_field_button">Add More Fields</button>
<div>
<table><tr><td><input type="text" name="mytext[]"/><a href="#" class="remove_field">Remove</a></td></tr></table></div>
</div>
</td>
</tr>
</table>
cardlist = [
{value: '2406421', label: '2406421', data1: 'Big', data2: 'Bldg', data3: 'Room'},
{value: '2406494', label: '2406494', data1: 'Big', data2: 'Bldg', data3: 'Room'},
{value: '2406496', label: '2406496', data1: 'Big', data2: 'Bldg', data3: 'Room'}];
$(document).ready(function() {
var listOfCards = cardlist;
//var listOfOrders = document.getElementById('orderList').value.split("|") ;
$(".cage_ID").autocomplete({
focus: function(event, ui) {
$("#cage_ID").val(ui.item.value);
$("#cage_type").text(ui.item.data1);
$("#building").text(ui.item.data2);
$("#room").text(ui.item.data3);
return false;
},
source: listOfCards
});
var max_fields = 10; //maximum input boxes allowed
var wrapper = $(".input_fields_wrap"); //Fields wrapper
var add_button = $(".add_field_button"); //Add button ID
var card_opt={
source: listOfCards,
minLength: 2
};
var x = 3;
$(add_button).click(function(e){
//on add input button click
e.preventDefault();
if(x < max_fields){ //max input box allowed
x++; //text box increment
newRow = $('<table width="100%"><tr><td width="25%" class="copy"><input id="DLAM_CARD_ID_'+x+'" class="textbox cage_ID" name="DLAM_CARD_ID_'+x+'"value=""/></td><td width="25%" class="copy"><div id="cage_type_'+x+'"></div></td><td width="25%" class="copy"><div id="building_'+x+'"></div></td><td width="25%" class="copy"><div id="room_'+x+'"></div></td><td width="1%" class="copy"><a class="remove_field" href="##"><img src="/common/fam/cancel.png"></a></td></tr></table>');
$('.cage_ID', newRow).autocomplete(card_opt);
$(wrapper).append(newRow); //add input box
document.getElementById('count').value = x;
}
});
$(wrapper).on("click",".remove_field", function(e){ //user click on remove text
e.preventDefault(); $(this).parent('td').parent('tr').remove(); x--;
//document.getElementById('count').value = x;
})
});
1)您有奇怪的选择,而无需HTML,很难说什么是'$( “.cage_ID_1" )'和'$之间发生的事情(” #cage_ID_1 “)'。 2)我认为'$('。cage_ID',newRow).autocomplete(card_opt);'应该是:'$(newRow).find(“input”)。autocomplete(card_opt);' – Twisty
另外我注意到' $(add_button)'没有任何引用。 – Twisty
另外'x'是在哪里定义的? – Twisty