首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从更改时选择获取所选值/文本

从更改时选择获取所选值/文本
EN

Stack Overflow用户
提问于 2011-03-24 16:54:44
回答 14查看 631.2K关注 0票数 131
代码语言:javascript
复制
<select onchange="test()" id="select_id">
    <option value="0">-Select-</option>
    <option value="1">Communication</option>
</select>

我需要在javascript中获取所选选项的值:有谁知道如何获取所选值或文本,请告诉我如何为其编写函数。我已经分配了onchange()函数来选择,那么在那之后我该怎么办呢?

EN

回答 14

Stack Overflow用户

发布于 2016-06-29 06:04:03

如果您正在googling搜索,并且不希望事件侦听器是一个属性,请使用:

代码语言:javascript
复制
document.getElementById('my-select').addEventListener('change', function() {
  console.log('You selected: ', this.value);
});
代码语言:javascript
复制
<select id="my-select">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

票数 69
EN

Stack Overflow用户

发布于 2012-09-30 21:59:16

代码语言:javascript
复制
function test(a) {
    var x = (a.value || a.options[a.selectedIndex].value);  //crossbrowser solution =)
    alert(x);
}
代码语言:javascript
复制
<select onchange="test(this)" id="select_id">
    <option value="0">-Select-</option>
    <option value="1">Communication</option>
    <option value="2">Communication</option>
    <option value="3">Communication</option>
</select>

票数 38
EN

Stack Overflow用户

发布于 2017-11-26 19:56:07

哇,答案中还没有真正可重用的解决方案..我的意思是,标准事件处理程序应该只获得一个event参数,而不需要使用ids。我会使用:

代码语言:javascript
复制
function handleSelectChange(event) {

    // if you want to support some really old IEs, add
    // event = event || window.event;

    var selectElement = event.target;

    var value = selectElement.value;
    // to support really old browsers, you may use
    // selectElement.value || selectElement.options[selectElement.selectedIndex].value;
    // like el Dude has suggested

    // do whatever you want with value
}

您可以对每个内联js使用此处理程序:

代码语言:javascript
复制
<select onchange="handleSelectChange(event)">
    <option value="1">one</option>
    <option value="2">two</option>
</select>

jQuery:

代码语言:javascript
复制
jQuery('#select_id').on('change',handleSelectChange);

或普通JS处理程序设置:

代码语言:javascript
复制
var selector = document.getElementById("select_id");
selector.onchange = handleSelectChange;
// or
selector.addEventListener('change', handleSelectChange);

而且不必为您拥有的每个select元素重写此代码。

示例代码片段:

代码语言:javascript
复制
function handleSelectChange(event) {

    var selectElement = event.target;
    var value = selectElement.value;
    alert(value);
}
代码语言:javascript
复制
<select onchange="handleSelectChange(event)">
    <option value="1">one</option>
    <option value="2">two</option>
</select>

票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5416767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档