0

我正在使用 jQuery 开发我的第一个程序,但我遇到了问题。我在 pageLoad 上弹出一个对话框,要求用户选择日期和转弯。现在,出于调试目的,我每次 .click() 执行时都会发出警报,并且由于某种原因,它似乎在用户单击之前和之后立即执行。

共有三个单选按钮,Turn 1、2 和 3。当用户单击 Turn 1 时,警报应显示“1”。当用户单击 Turn 2 时,警报应显示“2”等。但由于某种原因,它会提醒先前的值以及新的值。我搜索了我所有的代码,只有一个警报,所以我不知道是什么调用了 click() 两次。我已经在 IE 和 Chrome 中对其进行了测试,并且两次都发生了。

这是我的 .click() 函数:

$("#turn-radio")
    .click(function () {
    turnvalue = $("input[name='turn-radio']:checked").val();
    alert(turnvalue);
});

如果你检查这个jsfiddle,你会看到我的代码的其余部分,希望它可以更容易地找出我的问题是什么。

谢谢!

4

2 回答 2

2

您需要更改selector:,因为您的单选按钮 ID 不同,并且您给出了名称,selector这就是您面临该问题的原因:

 $("input[name='turn-radio']")
        .click(function () {
        turnvalue = $("input[name='turn-radio']:checked").val();
        alert(turnvalue);
    });

更新小提琴

于 2013-07-11T16:24:09.697 回答
1

改变

$("#turn-radio") to $("#turn-radio label") 

导致只有一个弹出窗口显示前一个值

但是,我个人会

$("#turn-radio input").change( function() { /* do stuff */ } )
于 2013-07-11T16:25:39.107 回答