Почему это не работает в Internet Explorer? [jQuery, радио, селекторы] - PullRequest
2 голосов
/ 07 декабря 2010

Я пытаюсь отладить что-то, что не работает ни в одной версии Internet Explorer.

Вот код:

<div id="sondage">
    <input type="radio" name="reponse" value="oui" id="oui">
    <label for="oui">Oui</label>

    <input type="radio" name="reponse" value="non" id="non">
    <label for="non">Non</label>
</div>

<script type="text/javascript" charset="utf-8">
$(function(){

    $('#oui, #non').click(function(){
        reponse = $('input[name=reponse]:checked').val();
        sondage_id = <?php echo $sondage->id ?>;

        $.ajax({
            type: "GET",
            url: "<?php echo url_for('@sondage_repondre') ?>",
            data: "reponse="+reponse+"&id="+sondage_id,
            success: function(msg){
                resultat = msg.split('|');

                if (resultat[0] == "true") {
                    $('#sondage_message').html("<?php echo __('Merci.') ?>");
                } else {
                    $('#sondage_message').html("<?php echo __('Désolé, vous avez déjà voté pour ce sondage. Merci.') ?>");
                }
                $('#sondage').html(resultat[1]);
            }
        });

    });

});
</script>

В этой строке происходит ошибка (reponse = $('input[name=reponse]:checked').val();).

Есть ли у вас какие-либо представления о том, что происходит?

Спасибо!

РЕДАКТИРОВАТЬ: Как спросили: ошибка:

Line 511, Char 7, Object doesn't support this property or method.

вот полный вывод: http://pastie.org/1355610

Еще раз спасибо!

1 Ответ

5 голосов
/ 07 декабря 2010

Вам не хватает там var, оно должно быть:

var reponse = $('input[name=reponse]:checked').val();

То же самое относится и к другим вашим переменным ... всегда используйте var для их объявления, независимо от того, где они находятся, не зависите от неявного глобального определения, которое не всегда разрешено.

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