HTML onChange для SELECT не работает на IE - PullRequest
0 голосов
/ 30 мая 2010

Я разрабатываю форму с помощью PHP и jQuery.

Вот ссылка:

http://www.yamaha -motor.com.pe / экстремальный / PHP / Ямаха / Registro / FrmRegistro01.php

Отлично работает на Firefox, но не на IE.

Что вы можете мне посоветовать ??

Спасибо

Ответы [ 2 ]

4 голосов
/ 30 мая 2010

Ну, ваша страница настолько сложна и изобилует вырезанным и вставленным кодом, что трудно понять, в чем именно заключается проблема, которую вы хотите продемонстрировать. Но краткий просмотр сценария показывает, что вы нюхаете addEventListener и нюхаете IE, в частности, и делаете для каждого совершенно разные вещи, многие из которых просто закомментированы. Так чего же вы ожидаете?

$('select#cbxMeses').attr('onchange', "javascript:fn_mesSeleccionado()");

Это очевидная ошибка. Во-первых, потому что атрибуты обработчика событий не должны иметь javascript: в начале (это только для javascript: псевдо-URL, которые также должны использоваться никогда ).

Но в любом случае это совсем не правильный способ прикрепления обработчиков событий к элементам; это не сработает в IE, и уродливо и неэффективно помещать код JS в строки. Используйте функцию (либо имя функции, либо встроенное значение function() { ... }) и один из методов привязки событий jQuery.

$(document).ready(function() {
    $('#cbxMeses').change(fn_mesSeleccionado);
    $('#cbxAnos').change(fn_anoSeleccionado);
    ...
});

Это работает везде! Нет необходимости нюхать браузеры вообще!

0 голосов
/ 16 июня 2010

Я только что решил.

Исправление было в том, чтобы не делать что-то вроде:

$('select#cbxMeses').attr('onchange', "javascript:fn_mesSeleccionado()");

... и сделайте это:

var select1 = document.getElementById("cbxMeses");
select1.changed = false;
select1.onchange = fn_mesSeleccionado;

Очевидно, IE пытается выполнить весь код JavaScrpit до того, как будут отображены все элементы DOM.

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