Javascript - 选择选项的表格选择框语法

时间:2011-04-18 13:04:49

标签: javascript forms drop-down-menu

if (document.myform.mycheckbox.checked)

如果选中复选框,则执行某些操作...

...对于选择框选项,哪行代码会做同样的事情?

if (document.myform.myselectbox.myselection.selected)

是这样的吗?我似乎无法找到我正在寻找的东西。

我在做的是:

Link to stuff nada workola

1 个答案:

答案 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语句来编写它,我刚刚扩展它以指示一些值