シンプルな YES/NO ラジオ ボタンを追加した Webforms ページを使用しています。ラジオ ボタンをクエリする JavaScript 関数を作成しました。Chrome では問題なく動作しますが、IE8 (企業の標準ブラウザ) では失敗します。IE8で実行しているときにどのボタンがクリックされたかを確認する方法を考え出そうとしています。これは HTML ページのボタンです。
<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 関数 (StackOverflow の別の場所からコピーしたもの) は、Chrome で正常に動作します (Firefox は試していません)。
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" ラジオ ボタンで使用できるメソッドを確認すると、"クリックされた" 状態のチェックを許可するものがないかのように見えます。理想的な解決策は、IE8 をダンプすることだと思いますが、これはこの企業環境では不可能です。
ティア・スコット