在Internet Explorer中出现了“Javascript未实现”的错误

4

我在GridView中使用了一个用于单选按钮检查的JavaScript代码。该代码在火狐浏览器中运行良好,但在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>

在脚本标签结束前,最好在//<![CDATA[后面加上这个://]]>。这样做可以解决问题吗?如果不这样做,IE可能会遇到困难...哦,调试JavaScript代码的一个方便方法是将警报语句放置在警报变量内容中。如果您看到消息框弹出并且值正确,则错误发生在函数中。在for循环中放置多个警报(例如alert(item[i])和if语句中的一个)以查看它在哪里出错。 - MarioDS
你使用的是哪个版本的IE浏览器? - Pranav
IE 8。我在document.getelementId()之前使用了alert box,但之后它显示相同的未实现错误。 - kk1076
是的,我之前也遇到过同样的问题,而且只出现在IE浏览器中。请提供任何解决方案。 - Pranav
3个回答

2

尝试重命名父级变量。这听起来可能会与预先存在的环境产生冲突。


0
尝试在您的Page_Load函数上添加“onclick”事件:
grdRdo.Attributes.Add("onclick", "CheckOtherIsCheckedByGVID(this)");

0

变更

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

to:

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

当您声明变量时,IE似乎喜欢在其中使用'var'。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接