【问题标题】:Getting the current value of a select tag获取选择标签的当前值
【发布时间】:2014-03-22 05:26:51
【问题描述】:

当我尝试在当前 DOM 中的 select 标记中获取选定的 option

var type = $("input[name='type']").val();

我得到返回值undefined

<select name="type" id="type" class="form-control">
                                <option value="combine">Combiné</option>
                                <option value="histogramme">Histogramme</option>
                                <option value="courbe">Courbe</option>
                                <option value="cercle">Cercle</option>
                            </select>

请问为什么我会得到这个?

【问题讨论】:

  • 你的 HTML 是什么样的?

标签: javascript jquery dom select


【解决方案1】:

您是否尝试过以下方法?

var type = $("select[name='type']").find(":selected").text();

如果您想让val() 工作,您需要确保您的option 标签设置了它们的value 属性,否则您需要执行上述操作。


既然你更新了你的帖子,你可以这样做:

var type = $("#type").val(); 

如果你想检查未定义,你需要这样做:

if (type === undefined)
    // do something

【讨论】:

  • 最后,我结合了你所有的三个解决方案来解决这个问题。非常感谢!
【解决方案2】:

你的选择器错了,元素选择器一定是select而不是input

var type = $("select[name='type']").val();

您的代码会查找具有名称类型的输入元素,而不是像这样的选择元素

<input name="type" type="..." />

而不是

<select name="type">
    .....
</select>

【讨论】:

  • @user3319426 因为你有一个 id var type = $("#type").val(); 也可以 - jsfiddle.net/arunpjohny/d4P5L/3
  • 请问如何检查当前值是否为undefined
  • 问题是,jQuery 无法检测到我使用Razor 完成的动态选择的option 标记,因此它始终采用默认值=undefined。所以,我不得不使用 CodeMaverick 的三种解决方案来获取当前选中的option 标签。非常感谢 Arun P Johny!
【解决方案3】:
var type = $("select[name='type']").val();

【讨论】:

  • 哎呀,有一个} 而不是"。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-23
  • 1970-01-01
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 2017-05-04
相关资源
最近更新 更多