【问题标题】:How to get selected option from "select" tag on mobile browser?如何从移动浏览器上的“选择”标签中获取选定的选项?
【发布时间】:2018-01-27 19:11:46
【问题描述】:

我需要从下面的下拉列表中获取选定的值

<select id = "sel123">
  <option selected value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select> 

这是我尝试的方法

 alert($("#sel123 option:selected").text()); 

我在桌面浏览器上运行良好。

但是当我在移动设备上测试相同的东西时,jqueryALWAYS 无论我选择什么都会拉出“沃尔沃”选项。 我的意思是当我选择“Saab”或“Audi”时,下拉菜单会显示“Saab”或“Audi”。 . .但jquery 警报仍显示“沃尔沃”

为什么会这样?如何在移动浏览器上获取“选定”值? (我一直在Airwatch浏览器IPhone和Chrom Android上测试过)

编辑:我怀疑这可能是因为我在“沃尔沃”选项中预设了selected attr,而移动浏览器没有识别出更改

【问题讨论】:

    标签: jquery


    【解决方案1】:

    如果发生变化,您需要提醒。试试这样:

    $("#sel123").change(function() {
      alert($(this).find("option:selected").text());
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <select id = "sel123">
      <option selected value="volvo">Volvo</option>
      <option value="saab">Saab</option>
      <option value="mercedes">Mercedes</option>
      <option value="audi">Audi</option>
    </select>

    阅读更多关于jQuery change() here的信息

    【讨论】:

    • 感激不尽。我昨晚没睡。我不知道我的版本不起作用。但你的魔法有效:)
    • @john 不客气。很高兴它有帮助!没有魔法。该函数只是等到选择更改。当它发生变化时,它会继续使用函数内写入的任何内容。在这种情况下,它会发出警报。
    【解决方案2】:

    一旦发生任何更改,让我们尝试删除 selected 属性

    $("#sel123").change(function() {
      $(this).find("option[selected]").removeAttr('selected');
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-01
      • 1970-01-01
      • 2013-01-18
      • 1970-01-01
      • 2019-02-07
      • 2017-04-18
      相关资源
      最近更新 更多