以下是我在HTML代码中的选项:
<label id="subn">
<select name="subs" id="subs">
<option value="nothing">Choose a Subject</option>
<option value="General Question">General Question</option>
<option value="MemberShip Area">MemberShip Area</option>
<option value="Others">Others</option>
</select>
</label>
我想创建一个JavaScript代码,用于检查用户是否选择了第一个选项以外的选项。
以下是我的尝试:
if (document.getElementsByTagName('option') == "nothing"){
document.getElementById("subn").innerHTML = "Subject is Required!";
document.getElementById("subs").focus();
return false;
}
答案 0 :(得分:11)
如果nothing
将成为第一位,您可以这样检查(通常就我的经验而言):
if (document.getElementById('subs').selectedIndex == 0){
要根据值进行比较,请执行以下操作:
var sel = document.getElementById('subs');
if (sel.options[sel.selectedIndex].value == 'nothing') {
您可以更改标记以使标签位于旁边,如下所示:
<select name="subs" id="subs"></select><label id="subn" for="subs"></label>
否则此部分:.innerHTML = "Subject is Required!";
将删除您的<select>
:)
答案 1 :(得分:1)
这应该这样做:
var index = document.your_form_name.subs.selectedIndex;
var value = document.your_form_name.subs.options[index].value;
if (value === "nothing"){
// your further code here.........
}
答案 2 :(得分:0)
document.getElementsByTagName('option')
提供了文档中所有option
元素的集合,"nothing"
是一个字符串。将集合与字符串进行比较是没有用的。
同时设置document.getElementById("subn").innerHTML = "Subject is Required!";
会删除select
元素,因此document.getElementById("subs")
将无法再找到任何内容。
如果您只是需要知道是否选择了任何内容,请检查selectedIndex
元素的select
属性:
if (document.getElementById("subs").selectedIndex <= 0) {
// nothing is selected
}
编辑:将> 0
更改为<= 0
。我认为应该检查用户是否也没有选择任何东西。