php - 下拉列表未在 IE 中填充?

标签 php javascript select drop-down-menu

我试图根据在类别选择列表中选择的内容将值获取到子类别的选择列表。它似乎不适用于 IE。谁能提出问题?

在我的php文件中

<body onload="setSubcategories(default_value);">

在js文件中我有类似的东西

 subcategories = new Array();
 subcategories['Lifestyle'] = ['All',
                                  'Beauty (SHC)',
                                  'Skin Care',
                                  'Hair Care',
                                  'Oral Care',
                                  'Cosmetics',
                                  'Footwear',
                                  'Jewelry',
                                  'Male Styling',
                                  'Women Hygiene',
                                  'Womens magazines',
                                  'Apparels',
                                  ' Fashion (AFA)',
                                  'Spa',
                                  'Accessories'
                                  ];
    subcategories['Automobiles'] = ['All',
                           'Automobiles (C&B)',
                           'Cars',
                           'Bikes',
                           'Car Magazine',
                           'Bikes Magazine',
                           'Accessories'
                       ];
    subcategories['FoodandBeverage'] = ['All',
                                  'Snacking',
                                  'Confectionary',
                                  'Beverages',
                                  'Generic F&B',
                                  'Restaurant Review',
                                  'Food Reviews',
                                  'Wines & Vineyards'
                              ];


function setSubcategories(default_value){
    default_value = (typeof default_value == 'undefined') ?
             'All' : default_value;
    var elem = document.getElementById('id-category');
    if(elem == null){return false;}

    var category = elem.value;
    var subelem = document.getElementById('id-subcategory');
    var html = "";
    var subcategoriesArr = subcategories[category];
    for(var i=0; i < subcategoriesArr.length; i++){
        var selected = subcategoriesArr[i] == default_value ? " selected" : "";
        html += '<option' + selected + '>' + subcategoriesArr[i] + '</option>\n';
    }
    subelem.innerHTML = html;
}

最佳答案

尝试使用等效的 DOM:

var subcategoriesArr = subcategories[category];
for(var i=0; i < subcategoriesArr.length; i++){
    var option = document.createElement('option');
    option.value = option.text = subcategories[i];
    option.selected = (subcategoriesArr[i] == default_value);
    subelem.appendChild(option);
}

关于php - 下拉列表未在 IE 中填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1524856/

相关文章:

javascript - 使用多个 addMethod jquery

jQuery - 通过元素 id 设置选择索引

javascript - 如何在单独的文件中编写 Vue js 代码并包含在 laravel 中

javascript - 如果用户更改下拉选择,jQuery 删除单选按钮/输入选择

javascript - indexOf 在 IE 中导致错误;在其他浏览器中工作

MYSQL - 限制在一个范围内

javascript - JQuery 附加一个下拉选项,将空格缩减为一个

PHP/MySQL 基于数组内容的平均值

php - PHP 中的 SOAP 服务器 - 如何编写 WSDL 文件 - 技巧

php - 在 mysql 数据库中存储唯一命中