在Internet Explorer中未执行Javascript错误

问题描述:

我在gridview中使用了一个用于radiobtn检查的JavaScript代码。该代码在Firefox浏览器中正常工作。但在IE浏览器(IE)的代码不工作,错误表示JavaScript没有实现。我的JavaScript代码在Internet Explorer中未执行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> 
+0

在脚本标记之后执行此操作是很好的:'// ''。这能解决问题吗? IE浏览器可能会遇到困难,如果你不把它放在那里......哦,一个方便的方式来“调试”JavaScript代码是把警报语句提醒变量的内容。如果您看到弹出的消息框并且该值正确,则错误会在您的函数中进一步发生。将多个警报(如alert(item [i])放在for循环中,并将一个警报放在if语句中)以查看它出错的位置。 – MarioDS 2012-04-09 07:53:38

+0

您正在使用的IE版本是 – Pranav 2012-04-09 07:54:28

+0

即8。我在document.getelementId()之前使用了警告框。后数据它显示D相同没有实施错误 – kk1076 2012-04-09 08:04:52

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

尝试增加 “点击” 您的Page_Load事件功能:

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

变化

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

到:

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

IE浏览器似乎喜欢 '变种' 在那里,当你声明变量。