IE 8 и getElementById (), который динамически генерирует ошибку - PullRequest
0 голосов
/ 07 августа 2010

У меня есть функция, которая вызывается при изменении выбора. Если бы у select был идентификатор «foo», после него было бы текстовое поле с идентификатором «foo_other», которое по умолчанию имеет стиль «display: none».

Если из выбора выбрано значение «Другое», функция должна отображать текстовое поле и фокусироваться на нем. Если выбрано что-либо, кроме «Другое», оно должно скрыть поле и удалить все введенные данные.

Работает в FF, IE выдает ошибку «Требуется объект». Я пытался избежать выполнения eval () вокруг динамической переменной ... Любая помощь приветствуется.

Код:

function checkOther(inObj){
    var other_form_id = inObj.name + "_other"; 
    if(inObj.value == 'Other')
    {
        document.getElementById(other_form_id).style.display = 'inline';
        document.getElementById(other_form_id).focus();
    }
    else
    {
        document.getElementById(other_form_id).style.display = 'none';
        document.getElementById(other_form_id).value = '';   
    }
}

Ответы [ 2 ]

0 голосов
/ 25 марта 2011

Глупые идиоты от Microsoft получают первый id ИЛИ ИМЯ .У меня есть динамически генерируемый javascript и имя и идентификатор одного HTML-элемента (входные данные) разные.Но вместо того, чтобы получить элемент с указанным идентификатором, идиоты IE8 получают первый элемент с этим ИМЯ.

Я думал, что они идиоты, даже когда я работал более 15 лет в качестве разработчика Windows (Visual Studio), но яне ожидал такой глупости ...

Даже позже, надеюсь, это поможет кому-то другому, а не автору поста.

Моим решением было добавить префикс "id_" длятег id, чтобы быть уверенным, что идиоты получат точно нормальный, а не другой с таким же именем.В моем случае я использую тег id для вещей javascript и тег name для сохранения в БД при отправке формы.

0 голосов
/ 07 августа 2010

Полагаю, у вас есть несколько идентификаторов в одном документе (что неверно), и IE более требователен к этому, чем FF.Может ли это быть?

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