单击单选按钮时未获得更改事件

时间:2013-05-18 21:43:00

标签: javascript jquery backbone.js backbone-events

配合, 我点击单击单选按钮时设置骨干事件。 我有以下按钮:

<p><label for="pays">Pays now</label><input id="pays" name="pays" type="radio" value="1" class="_100"/></p>
<p><label for="pays2">Pays later</label><input id="pays2" name="pays" type="radio" value="2" class="_100"/>

我定义了这样的事件:

'click input[name=pays]:not(:checked)': 'radioChecked'

所以,据我了解,点击名为pays的输入时,它应该触发。

事情是,当我点击单选按钮时,没有触发任何事件。

如果我试试这个......

'click input[name=pays]': radioClicked

我可以通过一些标志修复此问题,但每次点击任何无线电时都会触发该事件。

有什么想法吗? 谢谢!

3 个答案:

答案 0 :(得分:5)

我找到了解决方案。 我将事件声明更改为:

'click input[name=pays]:checked': 'onRadioClick'

所以现在当我点击名为pays的任何单选按钮时,它会触发,如果我使用:

$('input[name=pays]:checked').val()

我得到了被检查的无线电值,而不是第一个声明的。

谢谢!

答案 1 :(得分:1)

也许我没有完全理解,但似乎这应该可行。

$(document).ready(function () {
    $('input[name="pays"]').click(function () {
        if($(this).prop('checked')){
            // do something here
            console.log('i am checked');
        }
    });
});
// .prop available in jQuery 1.6 or above.

答案 2 :(得分:0)

我想这是来自你的View.Try在 radio 处理程序周围加上引号。

'click input[name=pays]': radioHandler

还有一条建议:我在使用较旧的Backbone varsions(&lt; 0.9)的教程时遇到了麻烦。所以检查你的Backbone版本。