我无法使用从Select2 Ajax检索的数据更新隐藏的输入。 请看我的代码:
var select2_town = $('.select-test select').select2({
ajax: {
url : ajax_var.url,
dataType: 'json',
type: 'post',
delay: 250,
data: function (params) {
return {
q: params.term, // search term
page: params.page,
};
},
processResults: function (data, page) {
return {
results: $.map(data, function (item) {
return {
id: item.id, //eg 1149
town: item.place_name, //eg Reading
county: item.county, //eg Berkshire
country: item.country,
data: item
};
})
};
},
cache: true;
},
escapeMarkup: function (markup) { return markup; },
minimumInputLength: 1,
templateResult: function (item) { return ('<p>' + item.town + ' - ' + item.county + '</p>'); },
templateSelection: function (item) { return (item.town); },
});
这段代码对我来说很好。我的问题是选择一个值后会发生什么。
我想更新我隐藏的输入ID&#34;#town&#34;,&#34; #county&#34;和#34; #country&#34;与城镇,县和国家分别通过改变&#39;事件。
我看过很多SO示例,但它们都停留在$(this).select2('data')[0];
但不扩展它。
奇怪的是,以下脚本在控制台日志中显示正确的值。但总是只将对象id应用于#country。
select2_town.on('change', function() {
var obz = $(this).select2('data')[0].country;
console.log(obz);//displays Reading in console
$("#country").attr("value",obz); //displays 1149
});
答案 0 :(得分:0)
这实际上有效。
我有另一个功能是添加隐藏在另一个文件中的ID。我删除了那个,然后脚本按照我的意愿工作。
此致
由于