当前位置: 首页 > 知识库问答 >
问题:

jQuery select change event无法获取选项值

麻华辉
2023-03-14

我想在一个输入中隐藏多个选择,当我改变我的选择(例如,我选择了最后一个选项,然后选择了第一个选项),我在我的输入中得到相同的顺序。

null

$('select').change(function() {
  var str = "";
  // For multiple choice
  $("select option:selected").each(function() {
    str = $(this).val() + str + " ";
  });
  alert(str);

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="brands[]" class="chosen selectbrands fixed-width-xl" id="brands[]" multiple="multiple">
  <option value="1">BASTIEN test0</option>
  <option value="2">BASTIEN test1</option>
  <option value="3">BASTIEN test2</option>
</select>

null

现在如果我改变例如

(BASTIEN Test1/BASTIEN Test2/BASTIEN test0)

当我运行我的代码时

(BASTIEN Test0/BASTIEN Test1/BASTIEN test2)

这是我的代码工作很好,但当我选择最后一个然后第二个,这里的问题是当我选择第三个,他们不工作,我没有得到我的选项的值在我的var

共有2个答案

邢炯
2023-03-14

就像这样。当您从头开始选择时,选项数组将被重置。

    var str = "";
    $('select').change(function() {
    //alert($(this).find("option").length);
       if($(this).find("option").length < str.split(" ").length){
        str = "";
    }
      // For multiple choice
      str = $(this).find("option:selected").val() + str + " ";
      alert(str);

    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <select name="brands[]" class="chosen selectbrands fixed-width-xl" id="brands[]" multiple="multiple">
      <option value="1">BASTIEN test0</option>
      <option value="2">BASTIEN test1</option>
      <option value="3">BASTIEN test2</option>
    </select>
张伯寅
2023-03-14

如果我没理解错的话,这可能会有帮助:

使用click事件直接目标选项并将其按顺序保存在数组中。使用e.target.selected?时,请确保仅对selected进行推送。如果取消选择remove函数将从数组中删除元素。

null

var str = []
$('select#brands option').on("click", function(e) {
  e.target.selected ? str.push(e.target.value) : remove(str, e.target.value);

  console.clear()
  console.log(str)
});


function remove(str, item){
var index = str.indexOf(item);
if (index !== -1) {
  str.splice(index, 1);
}}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="brands[]" class="chosen selectbrands fixed-width-xl" id="brands" multiple="multiple">
  <option value="1">BASTIEN test0</option>
  <option value="2">BASTIEN test1</option>
  <option value="3">BASTIEN test2</option>
</select>
 类似资料:
  • 我的代码如下所示: 我也尝试过在选择器上执行点击操作,或者刷新页面,但这些操作都不起作用。我猜这个网页上有一些Javascript? 提前道谢! --Java version 7 Selenium version 2

  • 我在*.html的顶部有这个复选框。我想在“表单”中使用“ischecked”输入的值,比如将1/0(true/false)设置为隐藏输入:

  • 问题内容: 嗨, 这是从JComboBox作为字符串获取值的正确方法,以及为什么它是正确的方法。谢谢。 要么 问题答案: 如果仅在JComboBox中放置(非空)引用,则两种方法都可以。 但是,第一种解决方案还允许将来进行修改,您可以在组合框中插入s,s,s等作为项目。 为了对值保持鲁棒性(仍然不强制转换),您可以考虑第三个选择:

  • 我们使用nextjs/reactjs作为FE,并且我们有一个server.js文件,它允许我们在上传映像,但是由于某种原因,每当我们运行服务器时,都会出现错误 下面是我们在server.js上的代码 这些是我们package.json中包含的脚本 希望得到一些答案和建议。这些代码在本地运行,没有任何问题

  • 我目前正在用Specflow运行Selenium。

  • 获取系统首选项 进程: 主进程 例子: 1 const {systemPreferences} = require('electron') 2 console.log(systemPreferences.isDarkMode()) Copied! 事件列表 systemPreferences 对象提供以下事件: 事件: 'accent-color-changed' Windows 触发:用户在个性