讨厌的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测试通过,基本都没问题的了。
还有,建议你把你这个功能的详细需求说一下,和你的页面设计,也许会有大侠有其他的办法来实现。