【问题标题】: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 填充字段,但对于单选按钮,我使用元素名称。如果有人看到我的代码在哪里出错,请告诉我。谢谢。

【问题讨论】:

    标签: javascript jquery json forms


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      • 2012-01-08
      • 2016-05-08
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      相关资源
      最近更新 更多