我堅持我的思考如何將JS代碼應用於表單集。如何在表單集中應用jQuery自動完成?
我有這個HTML:
<input id="id_form-0-city" name="id_form-0-city" type="hidden">
<input id="id_form-0-city_input" name="id_form-0-city_input">
而且我用這個JS/jQuery代碼來自動完成#id_form-0-city_input輸入。
// Autocomplete stuff
$("#id_form-0-city_input").autocomplete({ // mudar!!!!
source: function(request, response) {
$.ajax({
url: "/internalapi/cidades/",
dataType: "json",
data: {
country: $('#id_country').find(":selected").val(),
term: request.term.toLowerCase()
},
success: function(data) {
response($.map(data, function(item) {
return {
label: item.name + " (" + item.zone + ", " + item.municipality + ")",
value: item.name,
id: item.id
}
}));
}
});
},
minLength: 2,
select: function(event, ui) {
var selectedObj = ui.item;
// Popular o campo id_city
$("#id_form-0-city").val(selectedObj.id);
},
search: function(event, ui) {
$("#id_form-0-city_input").addClass("ui-autocomplete-loading"); // mudar!!!!!
},
open: function() {
$("#id_form-0-city_input").removeClass("ui-autocomplete-loading"); // mudar!!!!
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function() {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
});
上面的代碼的偉大工程,但現在我需要使用這個自動完成代碼,這種情況下:
<input id="id_form-0-city" name="id_form-0-city" type="hidden">
<input id="id_form-0-city_input" name="id_form-0-city_input">
<input id="id_form-1-city" name="id_form-0-city" type="hidden">
<input id="id_form-1-city_input" name="id_form-0-city_input">
<input id="id_form-2-city" name="id_form-0-city" type="hidden">
<input id="id_form-2-city_input" name="id_form-0-city_input">
<input id="id_form-3-city" name="id_form-0-city" type="hidden">
<input id="id_form-3-city_input" name="id_form-0-city_input">
<input id="id_form-4-city" name="id_form-0-city" type="hidden">
<input id="id_form-4-city_input" name="id_form-0-city_input">
...
...
的組數可至少爲1和最大10
你能給我一些想法來重構JS/jQuery代碼來處理formset嗎? for循環是我需要使用的?
爲什麼不只是將一個類應用於每個輸入,然後使用您的代碼,但將'$(「#id_form-0-city_input」).autocomplete()'更改爲'$(「.class」).autocomplete( )'?同樣'$(「#id_form-0-city_input」)的實例將它更改爲$(this).prev()'。 – Dom 2013-02-22 14:56:47