if (document.myform.mycheckbox.checked)
如果选中复选框,则执行某些操作...
...对于选择框选项,哪行代码会做同样的事情?
if (document.myform.myselectbox.myselection.selected)
是这样的吗?我似乎无法找到我正在寻找的东西。
我在做的是:
答案 0 :(得分:0)
您正在寻找:
if (document.myform.myselectbox.selectedIndex != -1)
如果没有选择任何内容,索引将返回-1
。
如果您确实需要所选选项的内部值或文本字符串,则可以通过索引访问它:
var selObj = document.myform.myselectbox;
var selIndex = selObj.selectedIndex;
var selOptionValue = selObj.options[selIndex].value;
var selOptionText = selObj.options[selIndex].text;
然而您需要注意,行为也有点依赖于您的显示方式。使用“单个”选择元素(例如“下拉”)如果未指定特定选项是“已选中”,则认为第一个选项(索引0
)被选中,因为它是如何它以视觉方式显示。
<select>
<option>red</option><!-- "selected" by default when rendered -->
<option>orange</option>
<option>yellow</option>
...
</select>
如果你有一个大小属性大于1的select元素(例如6),那么在视觉上没有选择,因此默认情况下该元素将返回-1(如果没有选择)
<select size="6">
<option>red</option><!-- NOT "selected" by default when rendered -->
<option>orange</option>
<option>yellow</option>
...
</select>
无论哪种方式,您都可以使用这样的代码来确定要执行的操作:
var mySelect = document.myform.myselectbox;
var selIndex = mySelect.selectedIndex;
if(selIndex != -1){
//an option is selected
if(selIndex == 0){
//first option is selected
} else if(selIndex == 1){
//second is selected
} else if(selIndex == 2){
//third is selected
}
} else {
//no option is selected
}
您也可以使用switch / case语句来编写它,我刚刚扩展它以指示一些值