J'essaie d'envoyer différentes valeurs dans mon paramètre data
pour la saisie semi-automatique, en fonction d'une variable globale précédemment définie lookupType
.Comment modifier le paramètre 'data' de saisie semi-automatique sans trop de code répétitif?
Cependant, tous les autres codes sont répétés même si seule la section data
est différente.
Comment réduire le code redondant?
Dans un cas, la section data
est la suivante:
data: {
type: "full",
location: "local",
name: request.term
},
alors que dans une autre, il est comme ceci:
data: {
append: "no",
doPreprocess: true,
name: request.term,
maxResults: 1000
},
Le code complet est ci-dessous:
$("#lookup").autocomplete({
if($("#hiddenLookupType").val() == "order")
{
source: function(request, response) {
$.ajax({
url: lookupUrl,
dataType: "jsonp",
data: {
type: "full",
location: "local",
name: request.term
},
success: function(data) {
// do something
}));
}
});
},
minLength: 2,
select: function(event, ui) {
log(ui.item ?
"Selected: " + ui.item.label :
"Nothing selected, input was " + this.value);
},
open: function() {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function() {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
}
else if($("#hiddenLookupType").val() == "inventory")
{
source: function(request, response) {
$.ajax({
url: lookupUrl,
dataType: "jsonp",
data: {
append: "no",
doPreprocess: true,
name: request.term,
maxResults: 1000
},
success: function(data) {
// do something
}));
}
});
},
minLength: 2,
select: function(event, ui) {
log(ui.item ?
"Selected: " + ui.item.label :
"Nothing selected, input was " + this.value);
},
open: function() {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function() {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
}
});