使用 select2 ajax 数据更新隐藏的输入
Use select2 ajax data to update hidden inputs
我在使用从 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); },
});
这段代码对我来说很好用。我的问题是选择一个值后会发生什么。
我想通过 'change' 事件分别用镇、县和国家更新我的隐藏输入 ID“#town”、“#county”和“#country”。
我看过很多 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
});
这确实有效。
我有另一个功能是添加隐藏在另一个文件中的 ID。我删除了它,然后脚本按我想要的方式运行。
此致
谢谢
我在使用从 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); },
});
这段代码对我来说很好用。我的问题是选择一个值后会发生什么。
我想通过 'change' 事件分别用镇、县和国家更新我的隐藏输入 ID“#town”、“#county”和“#country”。
我看过很多 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
});
这确实有效。
我有另一个功能是添加隐藏在另一个文件中的 ID。我删除了它,然后脚本按我想要的方式运行。
此致
谢谢