使用select2 ajax数据更新隐藏的输入

时间:2015-03-28 01:25:18

标签: ajax object jquery-select2

我无法使用从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
});

1 个答案:

答案 0 :(得分:0)

这实际上有效。

我有另一个功能是添加隐藏在另一个文件中的ID。我删除了那个,然后脚本按照我的意愿工作。

此致

由于