Элементы формы обновляются в реальном времени в Firefox, но в IE они не - PullRequest
0 голосов
/ 18 июля 2011

Вот код, который у меня есть:

function transferq() {
if (document.forms[0].elements['return'].checked == true) {
document.forms[0].elements['returnhour'].disabled = false
document.forms[0].elements['returnminute'].disabled = false
document.forms[0].elements['returnday'].disabled = false
document.forms[0].elements['returnmonth'].disabled = false
document.forms[0].elements['returnyear'].disabled = false
document.forms[0].elements['returnflight'].disabled = false
document.forms[0].elements['samereturn'].disabled = false
}
}

<input name="return" id="return" type="checkbox" value="return" onchange="transferq()" />

он проверяет, установлен ли флажок «возврат», и, если это так, он позволяет вводить некоторые дополнительные данные в моей форме (они изначально отключены).

Это отлично работает в Firefox и выполняется немедленно, но в IE вам нужно щелкнуть пробел в документе, чтобы обновить его.

Я буквально искал везде, чтобы выяснить, почемуэто случается, но я ничего не могу найти.

Я был бы очень признателен, если бы кто-нибудь мог мне помочь в этом.

Спасибо

Ответы [ 3 ]

0 голосов
/ 18 июля 2011

Вы пытались подключить функцию к другому событию?как использовать onclick?

 <input name="return" id="return" type="checkbox" value="return" onclick="transferq()" />
0 голосов
/ 18 июля 2011

Измените имя вашего поля с «return» на другое.return - это ключевое слово в javascript, у меня были проблемы с ключевыми словами в виде имен в html-форме.

0 голосов
/ 18 июля 2011

Измените onchange на onclick.Это должно вызвать событие, как только элемент будет нажат, а не когда он «изменится».Поскольку вы уже проверяете, проверяется ли это в вашей функции-обработчике событий, это должно работать точно так же.

Также обратите внимание, что вместо того, чтобы поставить флажок в функции, вы можете передать его с помощьюthis:

<input name="return" id="return" type="checkbox" value="return" onclick="transferq(this)" />

А затем используйте ссылку на этот элемент в функции:

function transferq(elem) {
    if (elem.checked == true) {
        ...
    }
}

Наконец, обратите внимание, что хотя их не нужно, это хорошая идеяиспользовать точку с запятой в конце каждой строки, в которой она должна быть (каждая строка внутри вашего оператора if).

...