检查下拉菜单的所选选项是否不是JavaScript的第一个选项
以下是我在HTML代码中的选项:检查下拉菜单的所选选项是否不是JavaScript的第一个选项,javascript,html,html-select,Javascript,Html,Html Select,以下是我在HTML代码中的选项: <label id="subn"> <select name="subs" id="subs"> <option value="nothing">Choose a Subject</option> <option value="General Question">General Question</option> <o
<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>
如果没有什么事情会首先发生,你可以这样检查,通常我的经验是:
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是必需的!;将删除您的:这应该可以:
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.........
}
getElementsByTagName'option'提供文档中所有选项元素的集合,没有任何内容是字符串。将集合与字符串进行比较是毫无用处的
还需要设置document.getElementByIdsubn.innerHTML=Subject!;将删除select元素,因此document.getElementByIdsubs将无法再找到任何内容
如果您只需要知道是否选择了任何内容,请检查select元素的selectedIndex属性:
编辑:将>0更改为您已编写文档。getElementsByTagName'subs'您的意思是文档。getElementById'subs'如果您的主题是向后的,如果它>0,则未选择任何内容,则他希望进行反向检查。在他编写的文本中,如果用户选择的主题不是第一个主题,但在他的例子中,他试图检查第一个是否被选中,因此有一点矛盾。他添加了一条消息,如果他们没有选择任何内容,则返回。这从他的代码中是非常清楚的,我不确定混乱在哪里。。。
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.........
}
if (document.getElementById("subs").selectedIndex <= 0) {
// nothing is selected
}