Почему this.selectedIndex не работает в IE7 для тега <select>? - PullRequest
1 голос
/ 29 апреля 2009

Этот бит 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 ]

3 голосов
/ 29 апреля 2009

Вы пытаетесь получить selectedIndex из списка опций.

Используйте this.selectedIndex вместо this.options.selectedIndex.

Также см. Этот пример для более чистого использования: http://www.mredkj.com/tutorials/tutorial002.html

2 голосов
/ 25 января 2010

Я знаю, что это старо, но я не могу не видеть это здесь без ответа. Я думаю, что проблема здесь в том, что вы используете $ ('type_id'), который возвращает элемент в jquery (я полагаю). Чтобы получить доступ к фактическому HTML-элементу, вы должны использовать $ ('type_id') [0] или что-то в этом роде. Я думаю, что если вы используете document.getElementById ('type_id'), он должен работать.

Изменить: Изменен ответ, чтобы отразить комментарий Бенксамина о том, как получить доступ к элементу dom $ ('type_id') [0]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...