为什么this.selectedIndex不能在IE7上用于<select>标签?</select>

时间:2009-04-29 18:44:52

标签: javascript html internet-explorer-7

这个HTML和Javascript在IE6,FF2和FF3中有效。我找不到任何理由它也不能在IE7中工作,但是this.selectedIndex总是返回0。

** in javascript file
function onTypeChange()
{
    alert($('type_id').selectedIndex);
    if ($('type_id').selectedIndex != 0) 
    { 
        Element.update('chosenType', this.options[this.selectedIndex].text);     
        Form.Element.enable('go_button'); 
    } else {
        Element.update('chosenType', 'Selected Type'); 
        Form.Element.disable('go_button');
    }
}

** in html
<select class="hosp_select_buttons selectbox" id="type_id" name="type[id]" 
        onchange="onTypeChange();">
<option value="">Please select</option>
<option value="1594">Ambulatory Surgical Center</option>
<option value="1595">Birthing Center</option>
<option value="1596">Comprehensive Outpatient Rehabilitation Facilities</option>
<option value="1597">Drug Abuse Treatment Program</option>
<option value="1598">Mammography</option>
<option value="1599">Narcotic Treatment Program</option>
<option value="1600">Outpatient Physical Therapy</option>
<option value="1601">Private Home Care Provider</option></select>

**编辑改变了人们反对的风格事物。更改选择框后,警报仍然显示selectedIndex为0。此代码已经并且仍然可以在除I.E之外的所有浏览器中运行。 7

2 个答案:

答案 0 :(得分:3)

您正试图从选项列表中获取selectedIndex

使用this.selectedIndex代替this.options.selectedIndex

另请参阅此示例以了解更清洁的用法:http://www.mredkj.com/tutorials/tutorial002.html

答案 1 :(得分:2)

我知道这已经过时了,但我无法在这里看到它没有答案。我认为这里的问题是你正在使用$('type_id'),它在jquery中返回一个Element(我相信)。要访问实际的HTML元素,您必须使用$('type_id')[0]或类似的东西。我想如果你使用document.getElementById('type_id')它应该可以工作。

修改:更改了答案以反映Benxamin关于如何访问dom元素的评论$('type_id')[0]