Ich versuche, verschiedene Werte in meinem data
Parameter für die automatische Vervollständigung zu senden, abhängig von einer zuvor festgelegten globalen Variablen lookupType
.Wie ändert man den Autocomplete-Parameter "data" ohne so viel sich wiederholenden Code?
Jedoch alle anderen Code in wiederholt, obwohl nur die data
Abschnitt ist anders.
Wie reduziere ich den redundanten Code?
In einem Fall der data
Abschnitt ist dies:
data: {
type: "full",
location: "local",
name: request.term
},
während in anderen ist es dies wie:
data: {
append: "no",
doPreprocess: true,
name: request.term,
maxResults: 1000
},
Der vollständige Code ist unten:
$("#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");
}
}
});