[英]How to check radio button based on the name and value?
我的表單上有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填充字段,但對於單選按鈕,我使用元素名稱。 如果有人看到我的代碼在哪里中斷,請告訴我。 謝謝。
今天,我面臨着類似的問題。 這是我的解決方案:
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;
}
}
}
}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.