javascript - jquery从多个中获取当前选定的值

标签 javascript jquery

我有选择下拉菜单,在其中使用数组登录名称,例如

<select name="services[]" id="service_id" multiple>
  <option value="4">four</option>
  <option value="1">one</option>
  <option value="3">three</option>
</select>

现在我需要从更改事件的下拉列表中获取当前(最后)选择的值。

到目前为止我尝试过的是

var clicked = $('#service_id option:selected').last().val();
alert(clicked);
//also tried as
//$(this).closest('select').find('option').filter(':selected:last').val();
//and this is tried too
// $(this).val();
// this.value;

当多重选择时,所有这些都给了我错误的值。

我需要什么

如果选择four,然后选择one,它应该提醒1(记住多选时)。

如果选择,然后选择,那么它应该提醒4

简而言之,即使在多选中也始终需要点击选项的

** 无法从名称 services[] 中删除数组符号

最佳答案

没有原生方法,但您可以保存单击选项的顺序,然后获取最后一个。

即,针对选择上的data属性:-

$('#service_id option').click(function() {
  var values = $(this).parent().data('values') || [];
  var index = values.indexOf(this.value);
  index >= 0 ? values.splice(index, 1) : values.push(this.value);
  $(this).parent().data('values', values);
});

$('#service_id').click(function() {
  var values = $(this).data('values');
  console.log(values);
  
  var last = values[values.length - 1];
  console.log('last:' + last);  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select name="services[]" id="service_id" multiple>
  <option value="4">four</option>
  <option value="1">one</option>
  <option value="3">three</option>
</select>

关于javascript - jquery从多个中获取当前选定的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40281672/

相关文章:

javascript - 我如何撤消子字符串(例如将文本返回到其正常长度)

jquery - ie中的iframe问题

javascript - 将 CKEditor 4 集成到 EXT JS 4 中

javascript - 尝试使用 axios 从 Reactjs 组件发送数据到 Express 应用程序

javascript - Javascript(NodeJS) 如何处理有关事件的范围和上下文

javascript - Jquery 1.8,检查元素是否隐藏

javascript - 使用 jQuery 进行订单行定价

javascript - 使用ajax提交包含未知数量字段的html表单

javascript - 根据背景图像颜色自动对比文本颜色

javascript - 如何删除iOS中的Javascript插件代码?