首页 新闻 会员 周边

对多个下拉菜单验证时,ie8及以下版本浏览器报错

0
悬赏园豆:5 [已解决问题] 解决于 2015-03-28 23:04
  var oBtnSub=document.getElementById('submit');
  var oForm=document.getElementById('form');

  oBtnSub.onclick=function(){
    var aSel=oForm.getElementsByTagName('select');
    
    for(var i=0;i<aSel.length;i++){
        var sSel=aSel[i].options[aSel[i].selectedIndex].text;
        var oSpanS=aSel[i].nextElementSibling || aSel[i].nextSibling;

        if(sSel!='请选择'){
          oSpanS.style.display='none';
        }
        else{
          oSpanS.style.display='inline-block';
        }
    };
  };

这是个对于多个下拉菜单的验证,在 ie9 以上及谷歌、火狐浏览器没问题,在 ie8 及以下版本就会报错。这是为什么呢?

zanetti的主页 zanetti | 初学一级 | 园豆:128
提问于:2015-03-19 18:23
< >
分享
最佳答案
0

block呢?

我只知道ie7-中本身为inline的元素转换成inline-block在不加浮动等属性时会失效。

收获园豆:5
繁华已逝 | 菜鸟二级 |园豆:353 | 2015-03-20 08:12

我把 inline-block 改成 block,一样会报错……

zanetti | 园豆:128 (初学一级) | 2015-03-20 17:15
其他回答(2)
0

看情况是IE8的元素不支持style,也就是oSpanS对象里没有style或者没有display对象

菜鸟的故事 | 园豆:26 (初学一级) | 2015-03-24 10:43
0

其实我发现问题出在 html 里,对于 input, select 这样的表单元素,如果想取到它们后面的兄弟元素,必须让它们紧贴着,有一个空格都不行。

             <select class="span3" id="phase">
                <option>请选择</option>
                <option>小学</option>
                <option>初中</option>
                <option>高中</option>
                <option>幼儿园</option>
              </select><span class="help-inline c-81f" style="display:none;">请选择学段</span>
zanetti | 园豆:128 (初学一级) | 2015-03-28 23:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册