选择2选择功能显示以前的值

Wol*_*loW 2 javascript jquery jquery-select2 jquery-select2-4 select2

我正在使用Select2作为搜索下拉列表,但是当我在列表中选择一个项目时,它会一直显示前一个值.

我初始化Select2下拉列表:

$(document).ready(function() {
  $(".ordersSelect").select2();
});
Run Code Online (Sandbox Code Playgroud)

然后设置所有选项:

<select class="ordersSelect" style="width:75%;">
  <option value>Select a priority...</option>
  <option value="0">0</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
</select>
Run Code Online (Sandbox Code Playgroud)

所以我要说我从这段代码中选择1,我的控制台:

// when value is selected
$('.ordersSelect').on('select2:selecting', function(e) {
  var prioritySelection = $('.ordersSelect').select2('data')[0].text;
  console.log("DATA: " + prioritySelection);
});
Run Code Online (Sandbox Code Playgroud)

将显示"DATA:选择优先级......".如果我然后选择说'3',控制台将显示"DATA:1".

它不断显示上一个选择的值.当我将"select2:choose"更改为"select2:selected"时,控制台消息永远不会出现.

我在这做错了什么..?

And*_*ges 5

首先,你一定要使用select2:select.
select2:selecting在选择结果之前触发..

$('select').on('select2:select', function (evt) {
  // Do something
});
Run Code Online (Sandbox Code Playgroud)

其次,您可以从事件本身获取数据对象/值.检查evt.params.data酒店.

  • 谢谢,这完美无缺. (2认同)