如何根据名称和值检查单选按钮?
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
【讨论】:
以上是关于如何根据名称和值检查单选按钮?的主要内容,如果未能解决你的问题,请参考以下文章