【问题标题】:Javascript: Store HTML <select> as a variable? [duplicate]Javascript:将 HTML <select> 存储为变量? [复制]
【发布时间】:2013-08-01 14:13:12
【问题描述】:

HTML:

      <select id="selected2">
          <option selected>1</option>
          <option>2</option>
          <option>3</option>
      </select>

我尝试在 JavaScript 中使用此代码:

var dataCap = document.getElementById("selected2");

var userSelect = dataCap.options[dataCap.selectedIndex].text;

但是控制台说:“TypeError: dataCap is null”

【问题讨论】:

  • 您是否尝试在 DOM 完全呈现之前访问该元素?也就是说,您是在脚本的全局空间中运行代码,还是在页面加载后触发的函数内部(或在 select 元素之后的脚本中)?
  • 请发布您所有的相关代码。甚至更好 - 用 SSCCE 准备一个 jsfiddle。
  • 我在全局空间中运行它。实际上我需要的与上面的略有不同。我需要默认值为空白。 jsfiddle.net/vccn9/3 我猜我需要将 onchange="" 放入我的 &lt;select&gt; 元素并使用那里的函数。
  • 你的答案在下面...

标签: javascript html select options


【解决方案1】:

您需要为每个选项设置一个值:

<select id="selected2">
      <option selected value=""></option>
      <option value="2">2</option>
      <option value="3">3</option>
  </select>

标签之间的文字仅供用户查看,不返回值。

此外,您的 javascript 变量应为:

var dataCap = document.getElementById("selected2").value;

我在末尾添加了.value,以便它知道获取值。

【讨论】:

  • jsfiddle.net/M9YrV 是的,您需要在选择字段上使用 onchange 事件触发器并定义函数来执行您需要的操作。
  • 但是,如果我使用onchange,则需要使用相应的功能。如果我使用函数从&lt;select&gt; 捕获数据并将其存储为变量,那么该变量将是本地的。我需要它是全球性的。
  • 这个答案导致“TypeError: document.getElementById(...) is Null”
  • 如果您查看我发布的 jsfiddle,当您进行选择时,它会显示下面的选择。我不确定that = null.
猜你喜欢
  • 2011-07-15
  • 1970-01-01
  • 1970-01-01
  • 2014-08-01
  • 2014-11-09
  • 1970-01-01
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
相关资源
最近更新 更多