4

我在gridview 中使用了一个javascript 代码进行radiobtn 检查。该代码在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

尝试在 Page_Load 函数上添加“onclick”事件:

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

改变

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

到:

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

当您声明变量时,IE 似乎喜欢其中的“var”。

于 2012-08-22T01:16:47.353 回答