我有一个asp.net 4站点,在用户从数据库中删除一个对象作为基于客户端的确认之前,我正在使用javascript的confirm()方法。对于IE6-10、Firefox、Chrome和Safari,这一点工作得很好。我点击cancel,它会停止页面加载。然而,我在IE11的用户控件上使用它时遇到了问题。
用户控件加载一个数据网格,该数据网格具有一个链接按钮,该按钮使服务器调用一个删除存储过程。
使用IE11时,确认弹出窗口打开,但如果我单击窗口上的取消按钮或x,则不会停止页面发布和调用服务器中的删除命令。我尝试了我能想到的所有方法,但它总是通过并将页面读取为有效的。
在ItemDataBound后面的代码中,我们有这个...
DeleteButton.CommandArgument = ac.ID.ToString(); //set the id so we know what to delete
DeleteButton.Attributes.Add("onclick", "Sure(event)");这会将javascript附加到图像按钮。
然后,在包含javascript的文件中,我们有以下代码...
function Sure(evt){
var ans = confirm("Are you sure you want to delete? \n\nPress OK to continue or Cancel to stop.");
if(!ans){
var e = (window.event)? window.event:evt;
e.returnValue = false;
return false;
}
}调试时,它会将值设置为false,并在我按下cancel按钮时返回它们,但这不会像其他浏览器那样停止回发。它直接转到要求数据库删除它的调用。
知道为什么IE11在确认被取消后不停止回发吗?
发布于 2014-05-03 11:31:21
如果我没听错,你的意思是...?
"onclick", "return Sure(event)"..。
function Sure(evt){
var ans = confirm("Are you sure you want to delete? \n\nPress OK to continue or Cancel to stop.");
if(!ans){
var e = (window.event)? window.event:evt;
e.returnValue = false;
return false;
} else {
return ans;
}
}据我所知,你的脚本不应该在任何地方工作,即使是IE11。如果您没有“返回”函数的值,那么您只是在执行函数,而忽略了确认对话框返回"false“的事实。
https://stackoverflow.com/questions/23439903
复制相似问题