这个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
答案 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]