使用jquery在广播上单击或更改事件

时间:2011-03-02 10:00:44

标签: jquery radio-button

我的页面中有一些无线电,我想在检查的无线电更改时做一些事情,但是代码在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 个答案:

答案 0 :(得分:109)

此代码对我有用:

$(function(){

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

});

http://jsfiddle.net/3q29L/

答案 1 :(得分:70)

您可以指定name属性,如下所示:

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

答案 2 :(得分:13)

也适合我,这是一个更好的解决方案::

fiddle demo

<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>

您必须确保在所有其他导入和javascript函数之上初始化jquery。因为$jquery函数。甚至

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

不会检查jquery是否已初始化。它将确保<code>仅在所有javascripts初始化后才会运行。

答案 3 :(得分:7)

尝试

$(document).ready(

而不是

$('document').ready(

或者您可以使用简写形式

$(function(){
});

答案 4 :(得分:0)

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

这种语法可以更灵活地处理事件。您不仅可以观察到“更改”,而且还可以通过使用单个事件处理程序来控制其他类型的事件。您可以通过将事件列表作为参数传递给第一个参数来完成此操作。 See jQuery On

其次,.change()是.on(“更改”,处理程序)的快捷方式。 See here。我更喜欢使用.on()而不是.change,因为我可以更好地控制事件。

最后,我只是展示了将事件附加到元素的替代语法。