簡體   English   中英

如何根據名稱和值檢查單選按鈕?

[英]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;
            }
        }
    }
}}

使用JSON數據填充單選按鈕和JavaScript對象屬性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM