J'ai un problème lors de l'ajout de plug-in auto-complétion à plusieurs entrées de texte en boucle (aucune erreur n'est renvoyée).Ajout de la saisie semi-automatique jquery sur plusieurs entrées de texte
// get text inputs to attach autocomplete
var locinputs = $('#localizations').find('input:text');
// iterate over elements and add autocomplete plugin
for (var i = 0; i < locinputs.length; i++) {
// asp.mvc array with special characters replacing
var locNameField = locinputs[i].name.replace('[', '\\\\[');
locNameField = locNameField.replace(']', '\\\\]');
locNameField = locNameField.replace('.', '\\\\.');
$('input#' + locNameField).autocomplete('<%=Url.Action("GetCity", "Localization") %>', {
extraParams: {
provinceId: function() { return 21; }
},
dataType: 'json',
parse: function (data) {
var rows = new Array();
for (var i = 0; i < data.length; i++) {
rows[i] = { data: data[i], value: data[i].PlaceId, result: data[i].Name };
}
return rows;
},
formatItem: function (row, i, n) {
return row.Name;
},
width: 300,
mustMatch: true,
multiple: true
});
}
Il n'y a pas d'erreur sur le chargement, j'ai essayé de débogage à l'aide Firebug, les éléments sont accessibles par le sélecteur jquery
<input type="text" name="loc[0].CityNames" id="loc[0].CityNames" value="" />
déclaration corrigée
$. ('Entrée Localisations #: text') chacun (function() {
$(this).autocomplete('<%=Url.Action("GetCity", "Localization") %>', {
extraParams: {
provinceId: function() { return 21; }
},
dataType: 'json',
parse: function (data) {
var rows = new Array();
for (var i = 0; i < data.length; i++) {
rows[i] = { data: data[i], value: data[i].PlaceId, result: data[i].Name };
}
return rows;
},
formatItem: function (row, i, n) {
return row.Name;
},
width: 300,
mustMatch: true,
multiple: true
});
});
J'ai déplacé le code à chaque instruction jquery et l'ID ne fonctionne pas. Mais quand j'essaie d'accéder à l'élément $ ("input # loc \\\ [0 \\\] \\. CityNames"); il est accessible (à partir de firebug). – marcinn
Essayez de placer l'alerte dans chaque: est-ce que c'est correct? nombre de fois? Encore une chose: dans chaque fonction "ceci" fera référence à l'élément DOM. Donc, pour manipuler avec l'élément courant essayez d'utiliser $ (this) .attr ("name") etc. – Juriy
Juriy merci pour jquery et $ (this) :) – marcinn