2012-04-09 206 views
4

我在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

在腳本標記之後執行此操作是很好的:'// <![CDATA ['and script of end tag of script:'''']]>''。這能解決問題嗎? 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

回答

2

嘗試重命名父變量。這聽起來像是與預先存在的環境相沖突的事情。

0

嘗試增加 「點擊」 您的Page_Load事件功能:

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

變化

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

到:

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

IE瀏覽器似乎喜歡 '變種' 在那裏,當你聲明變量。