javascript - 多项选择的单一输出

标签 javascript

这已经让我发疯了一个多星期了,我什至还没有找到其他人试图做同样的事情。

本质上,我试图从多个 HTML 选择选项中获取单个输出,并且只显示最新的。

无法正常工作的 HTML 和 JS 示例:

function myFunction() {
  var x = document.getElementsByClassName("mySelect");
  var i = x.selectedIndex;
  document.getElementById("demo").innerHTML = x.options[i].text;
}
<form>
  <select class="mySelect" onchange="myFunction()">
    <option>Apple</option>
    <option>Orange</option>
    <option>Pineapple</option>
    <option>Banana</option>
  </select>
  <select class="mySelect" onchange="myFunction()">
    <option>one</option>
    <option>two</option>
    <option>three</option>
  </select>
</form>

<p id="demo"></p>

现在,如果我对单个选择执行相同的操作并使用 ID 而不是类,它就可以正常工作。

单选示例:

function myFunction() {
  var x = document.getElementById("mySelect");
  var i = x.selectedIndex;
  document.getElementById("demo").innerHTML = x.options[i].text;
}
<form>
  <select id="mySelect" onchange="myFunction()">
    <option>Apple</option>
    <option>Orange</option>
    <option>Pineapple</option>
    <option>Banana</option>
  </select>
</form>

<p id="demo"></p>

我完全被难住了,“未定义”错误完全没有告诉我任何事情。 我就是想不通哪里出了问题。

我想要的只是有多个选择并且只输出最后选择的值。

最佳答案

var x = document.getElementsByClassName("mySelect"); 是一个数组,不适用于您的方法。 做这样的事情。

function myFunction(select) {
  document.getElementById("demo").innerHTML = select.value;
  //or text 
  //document.getElementById("demo").innerHTML = select.options[select.selectedIndex].text
}
<form>
  <select class="mySelect" onchange="myFunction(this)">
    <option>Apple</option>
    <option>Orange</option>
    <option>Pineapple</option>
    <option>Banana</option>
  </select>
  <select class="mySelect" onchange="myFunction(this)">
    <option>one</option>
    <option>two</option>
    <option>three</option>
  </select>
</form>

<p id="demo"></p>

关于javascript - 多项选择的单一输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47044337/

相关文章:

javascript - 如何在 Bootstrap 4 中切换折叠图标的动画?

javascript - 如何根据 javascript 或 CSS 中的内容使禁用的输入框变大

javascript - 错误 JavaScript 中的行号

javascript - 无法访问 JSON 数组中的元素

javascript - 如何将实时 Google Analytics 仪表板嵌入到我的网站上?

javascript - 模仿 Javascript 中的私有(private)变量

javascript - jQuery:DOM 元素:属性:查询和创建

javascript - 如何将具有相同类和名称的多个输入字段传递给ajax请求并根据回复更改相应的字段?

javascript - 如何使用一个 get 方法克隆标签对象?

javascript - jQuery .submit() .ajax() 必须单击发送按钮两次才能获得正确的响应