javascript - 如何统一从多个组单选按钮获取的文本?

标签 javascript jquery html

我的 JavaScript 代码是这样的:

$(function(){
    $('input[type="radio"]').click(function(){
        var txt = $(this).parent().text();
        var $radio = $(this);
        if ($radio.data('waschecked') == true)
        {
            $radio.prop('checked', false);
            $radio.data('waschecked', false);
            $('#result-select').text('');
        }
        else{
            $radio.data('waschecked', true);
            $('#result-select').text(txt);
        }
        $radio.siblings('input[type="radio"]').data('waschecked', false);
    });
});

演示和完整代码如下:https://jsfiddle.net/oscar11/m7by6zcw/21/

我想要:

如果我选择切尔西、马德里和尤文,结果如下:

Chelsea - Madrid - Juve

如果我选择切尔西和马德里,结果如下:

Chelsea - Madrid

因此,如果我选中单选按钮,它会显示文本。如果我取消选中单选按钮,它不会显示文本

我该怎么做?

更新:

单选按钮可以取消选中

例如:

如果我选择切尔西、马德里和尤文,结果如下:

Chelsea - Madrid - Juve

然后我取消选中马德里,结果如下:

Chelsea - Juve

最佳答案

更新的 fiddle :https://jsfiddle.net/m7by6zcw/37/

基本上像贾斯蒂纳斯的答案,但可以检查/取消检查。

我真正改变的唯一部分是文本的输出方式,如下所示:

    let output = [];
    $('input[type="radio"]:checked').each( function() {
            var txt = $(this).parent().text();
            output.push(txt);
    });
    $('#result-select').text(output.join(' - '));

当检查某些内容时,您需要重置其他所有内容的数据:

$(`input[name=${name}]:not(:checked)`).data('waschecked', false);

关于javascript - 如何统一从多个组单选按钮获取的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44674975/

相关文章:

jquery获取img src并添加为另一个div中的背景

javascript - jQuery 单个脚本文件不特定于*此*页面 - 显示 "undefined is not a function"

javascript - 使用按钮在 Javascript 上隐藏和显示字段集在第一次单击时不起作用/如何在单击时更改按钮标题

javascript - jQuery 中的简单 onClick 效果

JavaScript Promises - 拒绝与抛出

javascript - 从 JS 外部访问 Angular 对象的函数

javascript - event.preventDefault() 不适用于 angularjs 应用程序中的 routeChangeStart

jquery - 提交表单后切换提交按钮?

javascript - 无法使用 javascript 检索正确的图像大小

javascript - Position::元素上的箭头之后