Я пытаюсь отправить разные значения в моем параметре data
для автозаполнения, в зависимости от ранее установленной глобальной переменной lookupType
.
Однако весь другой код повторяется, даже если отличается только раздел data
.
Как уменьшить избыточный код?
В одном случае секция data
выглядит так:
data: {
type: "full",
location: "local",
name: request.term
},
в то время как в другом это так:
data: {
append: "no",
doPreprocess: true,
name: request.term,
maxResults: 1000
},
Полный код ниже:
$( "#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" );
}
}
});