读书人

讨厌的IE版本兼容有关问题,IE9Chome

发布时间: 2012-11-10 10:48:51 作者: rapoo

讨厌的IE版本兼容问题,IE9,Chome无法运行...真他大爷....
实现的效果,是CheckBox选中时获取他的值和显示文本前台代码如下:
代码可以再IE的兼容模式下运行,但是IE9和Chome不能运行。大家看看是哪里有问题,谢谢大家...

HTML code
<tr><td><span text="建材" value1="7" onclick ="checkProd(); "><input id="ctl00_ContentPlaceHolder1_cblParent_0" type="checkbox" name="ctl00$ContentPlaceHolder1$cblParent$0" /><label for="ctl00_ContentPlaceHolder1_cblParent_0">建材</label></span></td><td><span text="型钢" value1="14" onclick ="checkProd(); "><input id="ctl00_ContentPlaceHolder1_cblParent_1" type="checkbox" name="ctl00$ContentPlaceHolder1$cblParent$1" /><label for="ctl00_ContentPlaceHolder1_cblParent_1">型钢</label></span></td></tr>

------------------------------------------------------------------
Js代码如下:
JScript code
 <script type="text/javascript">          function checkProd() {              // 再IE9和Chome下不能运行              var lblProdSelected = document.getElementById("<%=lblProdSelected.ClientID %>");              var hidProdSelected = document.getElementById("<%=hidProdSelected.ClientID %>");              var ckelems = document.getElementById("<%=cblParent.ClientID %>").getElementsByTagName("input");              var spelems = document.getElementById("<%=cblParent.ClientID %>").getElementsByTagName("span");              for (var i = 0; i < ckelems.length; i++) {                  if (ckelems[i].type == "checkbox") {                      var nm = spelems[i].text;                      var id = spelems[i].value1;                      var text = lblProdSelected.innerText;                      var t = nm + "|" + id + ",";                      if (ckelems[i].checked) {                          if (text == "") {                              lblProdSelected.innerText += t;                              hidProdSelected.value += t;                          }                          else {                              if (text.indexOf(t) == -1) {                                  //不包含则加入                                  lblProdSelected.innerText += t;                                  hidProdSelected.value += t;                              }                          }                      }                      else {                          lblProdSelected.innerText = lblProdSelected.innerText.replace(t, "");                          hidProdSelected.value = hidProdSelected.value.replace(t, "");                      }                  }              }          }    </script>


[解决办法]
ckelems[i].checked 换成 ckelems[i].attr(“checked”) 试试
[解决办法]
建议使用innerHTML试下,这个属性兼容的浏览器比较多。没IE9无法测试.....
[解决办法]
调试一下,看看具体什么地方不兼容,建议用firefox测试,一般firefox测试通过,基本都没问题的了。
还有,建议你把你这个功能的详细需求说一下,和你的页面设计,也许会有大侠有其他的办法来实现。

读书人网 >asp.net

热点推荐