在Internet Explorer中未执行Javascript错误
问题描述:
我在gridview中使用了一个用于radiobtn检查的JavaScript代码。该代码在Firefox浏览器中正常工作。但在IE浏览器(IE)的代码不工作,错误表示JavaScript没有实现。我的JavaScript代码在Internet Explorer中未执行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>
答
尝试重命名父变量。这听起来像是与预先存在的环境相冲突的事情。
答
尝试增加 “点击” 您的Page_Load事件功能:
grdRdo.Attributes.Add("onclick", "CheckOtherIsCheckedByGVID(this)");
答
变化
parent = document.getElementById("<%= grdEventDetails.ClientID %>");
到:
var parent = document.getElementById("<%= grdEventDetails.ClientID %>");
IE浏览器似乎喜欢 '变种' 在那里,当你声明变量。
在脚本标记之后执行此操作是很好的:'// ''。这能解决问题吗? IE浏览器可能会遇到困难,如果你不把它放在那里......哦,一个方便的方式来“调试”JavaScript代码是把警报语句提醒变量的内容。如果您看到弹出的消息框并且该值正确,则错误会在您的函数中进一步发生。将多个警报(如alert(item [i])放在for循环中,并将一个警报放在if语句中)以查看它出错的位置。 – MarioDS 2012-04-09 07:53:38
您正在使用的IE版本是 – Pranav 2012-04-09 07:54:28
即8。我在document.getelementId()之前使用了警告框。后数据它显示D相同没有实施错误 – kk1076 2012-04-09 08:04:52