Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript添加选项组_Javascript_Html - Fatal编程技术网

使用javascript添加选项组

使用javascript添加选项组,javascript,html,Javascript,Html,我正在使用javascript向选择框添加选项,代码如下: function putDropDown(dataArr, fnVars){ var dropField = document.forms[fnVars['formName']].elements[fnVars['fieldName']]; if(dropField) { dropField.options.length = 0; if(dataArr != 'empty') {

我正在使用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]);
            }
        }
    }
}
函数putDropDown(dataArr、fnVars){
var dropField=document.forms[fnVars['formName']].elements[fnVars['fieldName']];
if(dropField){
dropField.options.length=0;
if(dataArr!=“空”){

对于(VarI=0;i如果我正确理解你

<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>

函数putDropDown(dataArr、fnVars){
var dropField=document.forms[fnVars['formName']].elements[fnVars['fieldName']];
if(dropField){
dropField.options.length=0;
if(dataArr!=“空”){
用于(数据阵列中的变量i[fnVars['valFld']]{
var groupData=dataArr[fnVars['valFld']][i];
var group=document.createElement('optgroup');
group.label=groupData.group;
for(groupData.options中的var键){
var opt=document.createElement('option');
opt.value=键;
opt.innerHTML=groupData.options[key];
儿童组(opt);
}
dropField.appendChild(组);
}
}
}
}
衰败(
{mSelect:[
{组:'top',选项:{1:'one',2:'two'},
{组:'bottom',选项:{f:foo',b:bar'}
]},
{formName:'mainForm',fieldName:'mainSelect',valFld:'mSelect'}
);

您能提供dataArr和fnVars的值吗?这只是一个文本和值的数组。我可以将选项组标签与dataArr一起传递,但您能告诉我如何添加类似于optgroup的dropField.options[optIdx]?您给出的示例是正确的,但这将创建选项,对吗?我需要创建选项组的帮助。非常感谢您的回答。@NehaDangui NP,希望它能帮助您!)