У меня есть источник данных, похожий на этот.
0: {id: 12, productNumber: "FGC 101 89/1A380", rstate: "R1B", functionDesignation: "J-VPN 1.0 WIND",…}
acronym: "vpn"
code: null
functionDesignation: "J-VPN 1.0 WIND"
id: 12
prCode: null
productNumber: "FGC 101 89/1A380"
reCode: "DS4"
rstate: "R1B"
versionDesignationText: ""
1: {id: 13, productNumber: "FGC 101 89/1A380", rstate: "R1A", functionDesignation: "J-VPN 1.0 WIND",…}
acronym: "vpn"
code: null
functionDesignation: "J-VPN 1.0 WIND"
id: 13
prCode: null
productNumber: "FGC 101 89/1A380"
reCode: "DS4"
rstate: "R1A"
versionDesignationText: ""
У меня также есть текстовое поле, как показано ниже.
<div class="col-md-3 col-sm-3 col-xs-3">
<label class="control-label">Product Name</label>
<input type="text" class="form-control" id="emsProductName" />
</div>
Теперь, когда пользователь вводит акроним (vpn) или обозначение функции (J-VPN 1.0 WIND), как я могу показать предложение первых четырех столбцов, которое соответствует.
Я сделал это следующим образом
$("#emsProductName").autocomplete({
source: function (request, response) {
console.log(request.term);
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
$.ajax({
type : 'POST',
url : config.vnfURL + 'vnf/getPRIM',
dataType: "json",
contentType: "application/json; charset=utf-8",
data: {
q: request.term
},
success: function (data) {
console.log(response);
response($.map(data, function(v,i){
var text = v.acronym;
if ( text && ( !request.term || matcher.test(text) ) ) {
return {
label: v.acronym+"_"+v.productNumber+"_"+v.functionDesignation+"_"+v.rstate+ "_" +v.versionDesignationText,
value: v.productNumber+"_"+v.functionDesignation+"_"+v.rstate+ "_" +v.versionDesignationText
};
}
}));
}
});
}
});
Работает отлично, но полное значение сохраняется в текстовом поле emsProductName.
Как можно разделить значение и поместить только functionDesignation в emsProductName (текстовое поле), rstate в Rstate (текстовое поле), prodcutNumber в текстовых полях prodcutNumber соответственно.