开发者

Javascript - Form Select Box syntax for selected option

if (document.myform.mycheckbox.checked)

If 开发者_开发问答checkbox is checked, then do something...

...what line of code would do the same thing for a select box option?

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

Is it something like that? I can't seem to find what it is I'm looking for.

What I'm doing is here:

Link to stuff nada workola


you are looking for:

if (document.myform.myselectbox.selectedIndex != -1)

When there is nothing selected the index returns -1.

If you actually want the internal value or text string for the selected option you can access it by index:

var selObj = document.myform.myselectbox;
var selIndex = selObj.selectedIndex;
var selOptionValue = selObj.options[selIndex].value;
var selOptionText = selObj.options[selIndex].text;

However you need to be aware that the behavior is also a bit dependent on how you have it displayed. With a "single" select element (e.g. a "drop down") if you don't specify that a particular option is "selected" then the first option (index 0) is considered to be selected as that is how it is visually displayed.

<select>
  <option>red</option><!-- "selected" by default when rendered -->
  <option>orange</option>
  <option>yellow</option>
  ...
</select>

If you have a select element with a size attribute greater than 1 (e.g. 6) then visually there are none selected, thus the element will return -1 by default (if none were selected)

<select size="6">
  <option>red</option><!-- NOT "selected" by default when rendered -->
  <option>orange</option>
  <option>yellow</option>
  ...
</select>

Either way, you can use code like this to determine what to do:

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
}

You could write this using a switch/case statement too, I've just expanded this to indicate a few values

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜