我在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>
答案 0 :(得分:2)
尝试重命名父变量。这听起来像是与先前存在的环境相冲突的东西。
答案 1 :(得分:0)
尝试在Page_Load函数中添加“onclick”事件:
grdRdo.Attributes.Add("onclick", "CheckOtherIsCheckedByGVID(this)");
答案 2 :(得分:0)
变化
parent = document.getElementById("<%= grdEventDetails.ClientID %>");
为:
var parent = document.getElementById("<%= grdEventDetails.ClientID %>");
当你声明变量时,IE似乎喜欢那里的'var'。