Я использую javascript для добавления параметров в поле выбора, используя приведенный ниже код,

function putDropDown(dataArr, fnVars){
   var dropField = document.forms[fnVars['formName']].elements[fnVars['fieldName']];
    if(dropField) {
        dropField.options.length = 0;

        if(dataArr != 'empty') {
            for(var i=0; i<dataArr[fnVars['valFld']].length; i++){
                var optIdx = dropField.options.length;
                dropField.options[optIdx] = new Option(dataArr[fnVars['txtFld']][i],dataArr[fnVars['valFld']][i]);
            }
        }
    }
}

Теперь мне нужно сгруппировать параметры с помощью optgroup, может ли кто-нибудь помочь мне добавить группу в вышеуказанную функцию.

Заранее спасибо.

С Уважением,

Неху

0
Neha Dangui 5 Янв 2017 в 08:25
Не могли бы вы предоставить значения dataArr и fnVars?
 – 
cn007b
5 Янв 2017 в 08:30
Это просто массив текста и значений. Я могу передать метку группы параметров вместе с dataArr, но не могли бы вы рассказать мне, как добавить optgroup, например dropField.options [optIdx]?
 – 
Neha Dangui
5 Янв 2017 в 08:47

1 ответ

Лучший ответ

Если я вас правильно понимаю ...

<html>
<body>
    <form name="mainForm">
        <select id="mainSelect" name="mainSelect"></select>
    </form>
</body>
<script>
function putDropDown(dataArr, fnVars){
    var dropField = document.forms[fnVars['formName']].elements[fnVars['fieldName']];
    if (dropField) {
        dropField.options.length = 0;
        if (dataArr != 'empty') {
            for (var i in dataArr[fnVars['valFld']]) {
                var groupData = dataArr[fnVars['valFld']][i];
                var group = document.createElement('optgroup');
                group.label = groupData.group;
                for (var key in groupData.options) {
                    var opt = document.createElement('option');
                    opt.value = key;
                    opt.innerHTML = groupData.options[key];
                    group.appendChild(opt);
                }
                dropField.appendChild(group);
            }
        }
    }
}
putDropDown(
    {mSelect: [
        {group: 'top', options: {1: 'one', 2: 'two'}},
        {group: 'bottom', options: {f: 'foo', b: 'bar'}}
    ]},
    {formName: 'mainForm', fieldName: 'mainSelect', valFld: 'mSelect'}
);
</script>
</html>
0
cn007b 5 Янв 2017 в 10:32
Приведенный вами пример верен, но при этом будут созданы варианты, верно? Мне нужна была помощь в создании групп опций.
 – 
Neha Dangui
5 Янв 2017 в 10:06
Большое спасибо за ответ.
 – 
Neha Dangui
5 Янв 2017 в 11:48
Н.П., надеюсь, это вам поможет!)
 – 
cn007b
5 Янв 2017 в 11:58