JQuery / Javascript проблема с IE - PullRequest
       16

JQuery / Javascript проблема с IE

0 голосов
/ 12 апреля 2010

У меня есть две радиокнопки, каждая с уникальным идентификатором. Когда кто-то нажимает, я хотел бы добавить 10 долларов к общей сумме. При нажатии на другую, мы возвращаемся к первоначальной общей цене. Мой jquery выглядит так:

function check_ceu() {
    var price = <%= conference_price %>;
    if($('#ceu_yes').is(':checked')){
            $('#total').val(parseFloat(price) + 10)
        }
        else{
            $('#total').val(price)
        }       
}

Эта функция привязана к document.ready (для обновления страницы), а также к обработчику переключателей переключателей.

В FF и Chrome это работает нормально. В IE, когда установлен переключатель с идентификатором «ceu_yes», ничего не происходит, затем при нажатии кнопки возврата на другой переключатель добавляется 10. Таким образом, в сущности, IE имеет обратную функциональность. Ниже мой код для кнопок:

<input type="radio" name="ceu" id="ceu_yes" value="1" onchange="check_ceu()" /> $10
<input type="radio" name="ceu" id="ceu_no" value="0" checked="checked" onchange="check_ceu()" /> No, thank you

Есть идеи по этому поводу?

1 Ответ

1 голос
/ 12 апреля 2010

Обработчик события IE 'change' испорчен. Он не срабатывает, когда ожидается. (http://webbugtrack.blogspot.com/2007/11/bug-193-onchange-does-not-fire-properly.html)

Если вы измените свою логику, чтобы присоединить ее к событию 'click' на своей радиокнопке, вы получите желаемый эффект.

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

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