4

gridview内のradiobtnチェックにjavascriptコードを使用しました。コードはFirefoxブラウザで正常に動作します。しかし、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>
4

3 に答える 3

2

親変数の名前を変更してみてください。それは既存の環境と衝突する何かのように聞こえます。

于 2012-04-09T08:57:01.527 に答える
0

変化する

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

に:

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

IEは、変数を宣言するときに、そこにある「var」を気に入っているようです。

于 2012-08-22T01:16:47.353 に答える
0

Page_Load 関数に「onclick」イベントを追加してみてください。

grdRdo.Attributes.Add("onclick", "CheckOtherIsCheckedByGVID(this)");
于 2012-04-09T07:56:40.357 に答える