Я использую 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
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.