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

hgu*_*ser 85 jquery radio-button

我的页面中有一些无线电,当被检查的无线电改变时我想做一些事情,但是代码在IE中不起作用:

$('input:radio').change(...);
Run Code Online (Sandbox Code Playgroud)

谷歌搜索后,人们建议使用点击.但它不起作用.

这是示例代码:

<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>
Run Code Online (Sandbox Code Playgroud)

它在IE中也不起作用.

所以我想知道发生了什么?

如果我点击一个已检查的收音机,我担心是否会重新触发更改事件?

更新:

我无法添加评论,所以我在这里回复.

我使用IE8和链接Furqan给我也不能在IE8中工作.我不知道为什么...

ale*_*exl 111

这段代码对我有用:

$(function(){

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

});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/3q29L/

  • 当单个无线电被定位并且选择另一个无线电导致另一个无线电取消选择时,这对我不起作用. (4认同)

小智 72

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

$( 'input[name="testGroup"]:radio' ).change(
Run Code Online (Sandbox Code Playgroud)

  • 不那么模棱两可.更好的做法.+1 (8认同)

suh*_*lvs 13

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

小提琴演示

<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>
Run Code Online (Sandbox Code Playgroud)

您必须确保初始化jquery所有其他导入和javascript函数.因为$是一个jquery功能.甚至

$(function(){
 <code>
}); 
Run Code Online (Sandbox Code Playgroud)

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


rah*_*hul 7

尝试

$(document).ready(
Run Code Online (Sandbox Code Playgroud)

代替

$('document').ready(
Run Code Online (Sandbox Code Playgroud)

或者您可以使用速记表格

$(function(){
});
Run Code Online (Sandbox Code Playgroud)