如何根据名称和值检查单选按钮?

Posted

技术标签:

【中文标题】如何根据名称和值检查单选按钮?【英文标题】:How to check radio button based on the name and value? 【发布时间】:2017-12-03 05:14:13 【问题描述】:

我的表单上有 4 组不同的单选按钮。每个组都有不同的名称集。我使用 JSON 对象来存储我的数据。在循环数据时,我使用前面附加单词的键。这将为我提供该组数据的每个表单元素的名称。我成功填充了文本和复选框输入字段,但仍然可以获得单选按钮。这是我的 JSON 数据:

var jsonData = 
   myForm:"hs_mask":"Yes","name":"John Miller","hs_cktr":"Yes"
 

这是我填充表单字段的逻辑:

$.each(jsonData[jsonKey], function(index, element) 
     var frmElementName = $('[name="'+'frm'+index.toLowerCase()+'"]');
     var frmElementId = $('#frm'+index.toLowerCase());
     var frmVal = $.trim(decodeURIComponent(element))

     if(frmElementName.attr('type') == 'text')
        frmElementId.val(frmVal);
     else if(frmElementName.attr('type') == 'checkbox')
        (frmVal == 'Yes') ? frmElementId.attr('checked',true) : frmElementId.attr('checked',false);
     else if(frmElementName.attr('type') == 'radio')
        $('input[name="'+'frm'+index.toLowerCase()+'"][value="' + frmVal + '"]').prop('checked', true);
     
);

我已经尝试了上面的代码,但我没有看到选中的单选按钮。如您所见,对于文本和复选框类型,我使用 ID 填充字段,但对于单选按钮,我使用元素名称。如果有人看到我的代码在哪里出错,请告诉我。谢谢。

【问题讨论】:

【参考方案1】:

今天我遇到了类似的问题。这是我的解决方案:

function jsonToForm(json)  //  populates form elements with JSON data
for (var x in json)    // JSON iteration
    var id = x; // in my original code x has to be processed to match form and object names
    var element = document.getElementById(id);
    if (element)  // if JSON key corresponds to a non radio button (unique id) form element
        element.value = json[x];    // updates form values
                 else if (document.getElementsByName(id))     //  for radio buttons the name attribute is used as JSON key won't match separate radio button id's.
        var radios = document.getElementsByName(id);
        for (var i = 0; i < radios.length; i++)    //  radio button iteration
            if (radios[i].value == json[x]) 
                radios[i].checked=true;
                break;
            
        
    

Populating radio buttons and javascript object properties with JSON data

【讨论】:

以上是关于如何根据名称和值检查单选按钮?的主要内容,如果未能解决你的问题,请参考以下文章

根据数据库更改单选按钮操作

根据单选按钮值调用标记

单选按钮验证(动态名称)

jQuery - 检查是不是选择了多个单选按钮组,然后返回未选择的人的名称

Vue检查多个单选按钮

如何通过检查另一个单选按钮来设置选中的单选按钮