2013-10-04 57 views
0

我正在使用Webforms頁面,並添加了一個簡單的YES/NO單選按鈕。我創建了一個查詢單選按鈕的JavaScript函數,它在Chrome中運行正常,但IE8(公司標準瀏覽器)失敗。當我用IE8運行時,我試圖想出一個方法來查看哪個按鈕被點擊了。這是從HTML頁面的按鈕:使用JavaScript和IE8查詢單選按鈕單擊事件

<td width="35%"> 
    <label class="label_bold floatLeft" style="margin-top: .25em">Clinicals sent:</label> 
</td> 
<td width="15%">  
    <asp:RadioButtonList ID="rbtClinicalsSent" 
         AutoPostBack="true" 
         RepeatLayout="Flow" 
         RepeatDirection="Horizontal" 
         OnClick="rbtClinicalsSent_clicked()" 
         OnTextChanged="rbtClinicalsSent_TextChanged" 
         runat="server"> 
     <asp:ListItem Value="1">Yes</asp:ListItem> 
     <asp:ListItem Value="0">No</asp:ListItem> 
    </asp:RadioButtonList> 
</td> 

我的JavaScript函數(從別的地方抄在計算器上)正常工作與鉻(沒試過火狐)。

function rbtClinicalsSent_clicked() { 
    /* This is based on the assumption that the first element 
     in the radio button is Yes */ 
    var yesButtonClicked = false; 
    var radioButton; 
    radioButton = document.getElementsByName("rbtClinicalsSent"); 
    for (i= 0; i< radioButton.length; i++){ 
     if (radioButton[i].checked & rbtIdx===0) 
      yesButtonClicked = true; 
    }; 
    return yesButtonClicked; 
}; 

當我運行與IE8的調試器,並期待在它出現「rbtClinicalsSent」單選按鈕,可用的方法,好像沒有什麼可供premit檢查「點擊」狀態。我猜想,理想的解決方案將是傾倒IE8,這在企業環境中是不可能的。

TIA 斯科特

回答

0

我找到了答案。在IE8 radioButton [0]包含一些元數據,但沒有選中的屬性。可能有點用處的屬性是innerText,對於兩個單選按鈕「Yes」和「No」,innerText是「YesNo」。的修復是檢查 「的typeof(單選按鈕[I])===」 未定義」下面是用於IE8,鉻,和Firefox的工作方式相同功能

function rbtClinicalsSentYes_clicked() { 
/* This is based on the assumption that the first element 
    in the radio button is Yes */ 
var yesButtonClicked = false; 
var radioButton; 
radioButton = document.getElementsByName("rbtClinicalsSent"); 
for (i= 0; i< radioButton.length; i++){ 
    if (typeof(radioButton[i].checked) === "undefined") { 
     continue; 
    } 
    if (radioButton[i].checked & rbtIdx===0) 
     yesButtonClicked = true; 
}; 
return yesButtonClicked; 

};。。