Salve a tutti, ho il seguente problema.
Ho creato un plugin per Jquery che inrealtà ingloba il plugin autocomplete (per far apparire quando si digita in una textbox un menu a tendina con varie suggestioni). I dati dell'autocomplete provengono da un webservice che interroga le tabelle dei comuni nel mio DB. Fin qui tutto ok.
Il problema è:
Ho inserito nel plugin una singola opzione, un flag booleano che mi indica se inserire o meno i comuni esteri nel risultato. Se passo come parametro un semplice 'true' o 'false' funziona tutto.
Quello che vorrei fare è passare come opzione una FUNZIONE che in base al fatto che l'oggetto chiamante abbia o meno una certa classe Css invii true o false.
Siccome varie textbox utilizzano questo sistema, utilizzo un selettore di classe come oggetto Jquery per la funzione . per intenderci :
$('.txtcomuni').autocompleteComuni(options)
Ora, se provo a passare una funzione nelle options, in pratica per TUTTE le textbox che utilizzano il plugin ritorna lo stesso parametro, indipendentemente dal fatto che l'oggetto abbia o meno l'altra classe che uso come discriminante.
Vi posto il codice :
PLUGIN
(function ($) {
$.fn.autocomplete_comuni = function (options) {
var opts = $.extend({}, $.fn.autocomplete_comuni.defaults, options);
return this.each(function () {
$(this).autocomplete({
source: function (request, response) {
var f = opts.flagEsteri ? "A" : "I"; //a=tutti, i=italiani
$.ajax({ url: 'GetComuni.asmx/GetComuniFormattati',
data: "{ 'input': '" + request.term + "', 'flagNaz' : '" + f + "', 'maxResult' : '10' }",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) { response(data.d) },
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('Errore Javascript);
}
});
},
minLength: 1,
select: function () {
$(this).attr('readOnly', 'readOnly').next().show();
}
});
});
}
$.fn.autocomplete_comuni.defaults = { flagEsteri: true }
})(jQuery)
questo è il codice che utilizzo nella pagina :
$('.txtcomuni').autocomplete_comuni({ flagEsteri: function () {
$(this).hasClass('comuniIta');
} });
grazie!