更改jQuery单选按钮不起作用

时间:2014-05-29 11:02:13

标签: javascript jquery html

我见过this question,我看过this fiddle

我的Fiddle here。这是一个简单的问题。为什么不起作用?

#html
<input checked="checked" id="article_format_html" name="article[format]" type="radio" value="html">Some meaningful value
<input id="article_format_text" name="article[format]" type="radio" value="text">Another Value

#js
$("input[name='article[format]']:radio").change(alert('hola'));

编辑:

根据大众的要求,我这样做了:

.change(function(){alert('hola')});

Fiddle

结果:不起作用。

编辑2 :(为什么我遇到了问题)

因此,JS-Fiddle将您的js代码包装在iframe部分Result的头部。对于jQuery选择器(或操作DOM的任何j)正常工作,必须在* 渲染DOM元素之后执行 *。因此,准备好和/或在body关闭之前包装代码是确保查询选择器不返回undefined的最安全方法。

11 个答案:

答案 0 :(得分:5)

  1. 使用回调或匿名功能块
  2. 您正在使用jQuery 1.11(最好使用.on语法)
  3. 演示:http://jsfiddle.net/abhitalks/e5ByP/2/

    $("input[name='article[format]']:radio").on("change", function() { 
        alert('hola'); 
    });
    

答案 1 :(得分:4)

您的代码无效,因为您没有将jQuery包装在document.ready function:

$(document).ready(function()
{
   $("input[name='article[format]']:radio").change(function()
   {
       alert('hola')
   });

});

<强> FIDDLE DEMO

答案 2 :(得分:2)

.on()的代码应为:

$(document).on('change',"input[name='article[format]']:radio",function(){alert('hola')});

工作小提琴: http://jsfiddle.net/e5ByP/10/

答案 3 :(得分:1)

将其包装在匿名函数和DOM就绪中:

$(function () {
    $("input[name='article[format]']:radio").change(function () {
        alert('hola')
    });
});

演示:http://jsfiddle.net/e5ByP/6/

答案 4 :(得分:1)

那是因为您的更改处理程序语法不正确。你需要在DOM准备好包装代码:

$("input[name='article[format]']:radio").change(function(){
  alert('hola')
});

<强> Demo

答案 5 :(得分:0)

在您的代码中,您不能使用.change()

包装处理程序
  

handler是每次触发事件时执行的函数。

     

类型:Function(Event eventObject)

试试这个:

$("input[name='article[format]']:radio").change(function(){
  alert('hola')
});

Working Example

答案 6 :(得分:0)

请在change事件

中使用匿名回调函数
$("input[name='article[format]']:radio").change(function(){
  alert('hola');
});

答案 7 :(得分:0)

将代码放入文档中,然后尝试这样做。请参阅语法

$(function () {
    $("input[name='article[format]']:radio").change(function () {
        alert('hola')
    });
});

答案 8 :(得分:0)

把它放在旁边的文件raedy

像这样:

$(document).ready(function () {
$("input[name='article[format]']:radio").change(function(){
    alert('hola')
});
});

demo

答案 9 :(得分:0)

使用以下代码

只有在DOM完全加载后才使用DOM操作和事件

$(document).ready(function(){
        $("input[name='article[format]']:radio").change(function(){alert('hola')});
    });

答案 10 :(得分:0)

你忘记了$(文件).ready(),你忘记在change()中写函数()

$(document).ready(function(){
    $("input[name='article[format]']:radio").change(function(){
        alert('hola')
    });
});