нажмите или измените событие на радио с помощью jquery


у меня есть несколько радиостанций на моей странице,и я хочу что-то сделать,когда проверенное радио изменится, однако код не работает в IE:

$('input:radio').change(...);

и после гуглить, люди предлагают использовать клик. Но это не работает.

Это пример кода:

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
        <script type="text/javascript">
            $('document').ready(
                function(){
                    $('input:radio').click(
                        function(){
                            alert('changed');   
                        }
                    );  
                }
            );

        </script>
    </head>
    <body>
        <input type="radio" name="testGroup" id="test1" />test1<br/>
        <input type="radio" name="testGroup" id="test2" />test2<br/>
        <input type="radio" name="testGroup" id="test3" />test3</br>
    </body>
</html>

Он также не работает в IE.

Итак, я хочу знать, что происходит?

кроме того, я боялся, что если он будет реагировать на событие изменения, если нажать на проверил радио?

обновление:

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

Я использую IE8 и ссылка Furqan дать мне также не работает в IE8. Я не знаю, почему...

5 78

5 ответов:

этот код работал для меня:

$(function(){

    $('input:radio').change(function(){
        alert('changed');   
    });          

});

http://jsfiddle.net/3q29L/

вы можете указать атрибут name, как показано ниже:

$( 'input[name="testGroup"]:radio' ).change(

работает и для меня, вот лучшее решение::

скрипка демо

<form id="myForm">
  <input type="radio" name="radioName" value="1" />one<br />
  <input type="radio" name="radioName" value="2" />two 
</form>

<script>
$('#myForm input[type=radio]').change(function() {       
    alert(this.value);
});
</script>

вы должны убедиться, что вы инициализировали jquery выше всех других функций импорта и javascript. Потому что $ - это

попробовать

$(document).ready(

вместо

$('document').ready(

или вы можете использовать сокращенную форму

$(function(){
});

$( 'input[name="testGroup"]:radio' ).on('change', function(e) {
     console.log(e.type);
     return false;
});

этот синтаксис немного более гибок для обработки событий. Здесь можно не только наблюдать "изменения", но и управлять другими типами событий с помощью одного обработчика событий. Это можно сделать, передав список событий в качестве аргументов первому параметру. смотрите jQuery на

во-вторых, .change () - это ярлык для.на( "смена", обработчик ). посмотреть здесь. Я предпочитаю использовать .на() Вместо .изменение потому что у меня больше контроля над событиями.

наконец, я просто показываю альтернативный синтаксис, чтобы прикрепить событие к элементу.