确认()取消按钮不再在IE11中工作

时间:2014-05-03 03:28:57

标签: javascript asp.net

我有一个asp.net 4网站,在用户从数据库中删除对象作为基于客户端的确认之前,我使用javascript的confirm()方法。使用IE6-10,Firefox,Chrome和Safari,效果很好。我点击取消,它停止页面加载。但是我在使用IE11的用户控件上使用它时遇到了问题。

usercontrol加载一个datagrid,它有一个链接按钮,让服务器调用一个删除存储过程。

使用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并在我按下取消按钮时返回它们,但这并不像其他浏览器那样停止回发。它直接呼吁数据库删除它。

知道为什么IE11在确认被取消后不会停止回发?

1 个答案:

答案 0 :(得分:1)

如果我听你说得对,你的意思是......?

"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"。