点击或更改使用jQuery的无线电事件

我在我的页面中有一些无线电,而且我想在选中的无线电改变时做一些事情,但是这些代码在IE中不起作用:

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

而谷歌search后,人们build议使用点击 。 但它不起作用。

这是示例代码:

 <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中工作。 我不知道为什么…

这段代码适用于我:

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

http://jsfiddle.net/3q29L/

您可以指定name属性如下:

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

也适用于我,这是一个更好的解决scheme::

小提琴演示

 <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所有其他import和JavaScript函数。 因为$是一个jquery函数。 甚至

 $(function(){ <code> }); 

不会检查jquery初始化或不。 它将确保<code>只有在所有的javascript被初始化后才能运行。

尝试

 $(document).ready( 

代替

 $('document').ready( 

或者您可以使用简写forms

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