我有一个VB.NET网页,当选中或取消选中数据网格视图中的复选框时,它会调用javascript函数。代码在我的计算机和更多人身上运行良好。但对于大多数人来说,当他们选中或取消选中复选框时,根本不会调用javascript函数。所有这些计算机都是Windows 7并使用IE 9.我还检查了IE-> Internet选项 - >高级选项卡,这些设备上的设置相同。在这一点上,我对此没有想法,谷歌也没有返回任何有用的结果。如果有人能帮我解决这个问题,我将非常感激。这是javascript函数的代码,如果有帮助的话。
function SelectLineItem(pRowIndex)
{
var vGridView=document.getElementById('dgvFSOView');
var vLen=vGridView.rows.length;
var i=parseInt(pRowIndex)+1;
var intcount;
var vtxtFcheckbox=vGridView.rows[parseInt(pRowIndex)].cells[0].getElementsByTagName("input")[0].id;
var vFCheckbox=document.getElementById(vtxtFcheckbox);
var browser=navigator.appName;
for(intcount=i;intcount<=vLen-1;intcount++)
{
if ((document.getElementById('hifCheck').value=="ALL") || (document.getElementById('hifCheck').value=="-1"))
{
var vtxtSONO=vGridView.rows[intcount].cells[3].innerText;
}
else if((document.getElementById('hifCheck').value!="ALL") || (document.getElementById('hifCheck').value=="-1"))
{
var vtxtSONO=vGridView.rows[intcount].cells[2].innerText;
}
if(vtxtSONO=="")
{
if ((document.getElementById('hifCheck').value=="ALL") || (document.getElementById('hifCheck').value=="-1"))
{
var vtxttocheckbox=vGridView.rows[intcount].cells[14].getElementsByTagName("input")[0].id;
}
else
{
var vtxttocheckbox=vGridView.rows[intcount].cells[13].getElementsByTagName("input")[0].id;
}
var vTCheckbox=document.getElementById(vtxttocheckbox);
if(vFCheckbox.checked==true)
{
vTCheckbox.checked=true;
}
else
{
vTCheckbox.checked=false;
}
}
else
{
return false;
}
}
}
答案 0 :(得分:1)
这可能是用户在其计算机上拥有的权限的问题。安全设置具有不同级别的权限,具体取决于用户设置计算机的方式。
如果您在本地运行代码(IE:双击本地.html文件),您通常需要启用Javascript才能在页面上运行任何javascript。如果它托管在一个网站上(IE:www.example.com/mypage.asp)那么这应该不是问题。
你是怎么称呼这个功能的?您可能还想尝试使用IE中内置的开发人员工具来查看是否发生了任何错误,这会阻止您的脚本完成。
利用jQuery之类的跨浏览器兼容框架可能会帮助您更改事件触发器,但根据项目的复杂程度可能会有些过分。
答案 1 :(得分:0)
复选框无法可靠地触发click
事件。将您的功能绑定到复选框'change
事件。