如何在UnChecked时触发单选按钮的OnChange事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在UnChecked时触发单选按钮的OnChange事件相关的知识,希望对你有一定的参考价值。

我有一个包含行和列的html表。每行都有单选按钮,每行是一组单选按钮,意味着我只能在所有列的行中选择一个单选按钮。我试图在我的表格中选择一个单选按钮单元格设置一个CSS,这很好但是当我移动到同一行中的另一个单选按钮时,作为一个单选按钮组,前一个单选按钮被取消选择但是CSS仍然存在,因为在组中选择另一个无线电时不会触发自动取消选择的无线电的OnChange事件。

取消选择收音机有没有办法触发onChange事件?

答案

怎么样:http://jsfiddle.net/2Z8Nt/14/

JS

$(function () {
    // Create table and radios
    for (var tri = 0; tri < 3; tri++) {
        var $tr = $('<tr>').appendTo('table');
        var $td = $('<td>').appendTo($tr);
        for (var rai = 0; rai < 3; rai++) {
            var $sp = $('<span class="radio-holder">');
            var $rd = $('<input type="radio" name="rad-' + tri + '" class="rad" value="val-' + rai + '"/>').appendTo($sp);
            $sp.append('Radio ' + tri  + '' + rai);
            $td.append($sp);
            $tr.append($td);
        }
    }

    // Record to keep track of radio selection
    var selrad = {};

    // Handler
    $('input.rad').on('deselect', function () {
        $(this).parents('.radio-holder').addClass('just-deselected')
    }).each(function () {
        $(this).on('click', function () {
            var nm = $(this).attr('name');
            $('input[name="' + nm + '"').parents('.radio-holder').removeClass('just-deselected');

            if (selrad[nm]) {
                selrad[nm].trigger('deselect');
            }

            selrad[nm] = $(this);
        })
    });
})

CSS

.radio-holder {
    border: 1px solid silver; 
    margin: 3px;
    padding: 3px;
}
.radio-holder.just-deselected {
    border: 1px solid red; 
}

以上是关于如何在UnChecked时触发单选按钮的OnChange事件的主要内容,如果未能解决你的问题,请参考以下文章

Javascript:如何让单选按钮的“onchange”事件通过外部函数触发?

触发单击单选按钮并记住页面刷新时的选择

单选按钮触发事件下拉列表触发事件

如何在 react-testing-library 中的单选按钮上触发更改事件?

帮助将 DropDown 事件更改为单选按钮触发器 - javascript

单击事件未在引导单选按钮组中触发