0

我有一个带有 javascript 函数的页面,该函数可以更改选择的单选按钮,如下所示:

if ($('#tables').hasClass('radiobuttons')){
    var tables = $('#tables').find('table'),
        rows = tables.find('tr'),
        radios = $('input[type="radio"]');

    rows.live('click', function(){
        var clicked = $(this);
        clicked.find('input[type=radio]').attr('checked', true);
        clicked.parent().find('tr').removeClass('selected');
        clicked.addClass('selected');
    });
}

基本上,这允许用户单击表格中一行的任意位置,并且将选择相应的单选按钮。

单选按钮都有一个onchange附加到它们的事件 - 除了以这种方式选择单选按钮时不会调用该函数。

<input type="radio" onchange="someFunction();" name="myradiobutton" value="123">

除了 onchange 事件之外,我如何检测到值已更改?

4

2 回答 2

1

不要在单选按钮上设置属性,而是尝试触发点击事件。

clicked.find('input[type=radio]').trigger("click");

或者,您可以尝试将您的单击事件处理程序绑定到用户单击的行,而不是(或除了)实际的单选按钮。

于 2012-06-11T17:39:36.160 回答
0

您可以查找引发事件的目标元素并做出相应决定。您可以使用作为事件处理程序中的第一个参数的事件对象来获取目标元素。

rows.live('click', function(e){
    if($(e.target).is(':radio'){
        //radio button clicked
    }
});
于 2012-06-11T17:38:40.053 回答