4

伙计们,我正在尝试在单击单选按钮时设置主干事件。我有以下按钮:

<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

我可以用一些标志来解决这个问题,但是每次单击任何收音机时都会触发该事件。

任何想法?谢谢!

4

3 回答 3

5

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

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

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

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

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

谢谢!

于 2013-05-18T22:26:15.990 回答
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.
于 2013-05-18T21:51:56.433 回答
0

我想它来自您的视图。尝试在无线电处理程序周围加上引号。

'click input[name=pays]': radioHandler

还有一个建议:我在使用较旧的 Backbone varsions ( < 0.9 ) 的教程时遇到了麻烦。因此,请检查您的 Backbone 版本。

于 2013-05-18T21:57:38.187 回答