Internet Explorer中的Javascript未实现错误

时间:2012-04-09 07:50:41

标签: javascript asp.net internet-explorer radio-button

我在gridview中使用了一个javascript代码进行radiobtn检查。代码在firefox浏览器中正常工作。但在Internet Explorer(IE)中,代码不起作用,错误表明Javascript未实现。我的javascript代码是

<script type="text/javascript">
    function CheckOtherIsCheckedByGVID(rb) {

        var isChecked = rb.checked;
        var row = rb.parentNode.parentNode;
        if (isChecked) {
            row.style.backgroundColor = '#C4DFFB';
            row.style.color = 'black';
        }
        var currentRdbID = rb.id;
        parent = document.getElementById("<%= grdEventDetails.ClientID %>");
        var items = parent.getElementsByTagName('input');

        for (i = 0; i < items.length; i++) {
            if (items[i].id != currentRdbID && items[i].type == "radio") {
                if (items[i].checked) {
                    items[i].checked = false;
                    items[i].parentNode.parentNode.style.backgroundColor = 'white';
                    items[i].parentNode.parentNode.style.color = '#696969';
                }
            }
        }
    }
</script>

我在gridview代码中的实现是

   <asp:TemplateField>
     <ItemStyle HorizontalAlign="Left" />
    <ItemTemplate>
   <asp:RadioButton ID="grdRdo" runat="server"
 onclick="javascript:CheckOtherIsCheckedByGVID(this);" />
  </ItemTemplate>
   </asp:TemplateField>

3 个答案:

答案 0 :(得分:2)

尝试重命名父变量。这听起来像是与先前存在的环境相冲突的东西。

答案 1 :(得分:0)

尝试在Page_Load函数中添加“onclick”事件:

grdRdo.Attributes.Add("onclick", "CheckOtherIsCheckedByGVID(this)");

答案 2 :(得分:0)

变化

parent = document.getElementById("<%= grdEventDetails.ClientID %>");

为:

var parent = document.getElementById("<%= grdEventDetails.ClientID %>");

当你声明变量时,IE似乎喜欢那里的'var'。