表单,提交前确认confirm(),
比如下面这个按钮
<input type="button" value="删除" OnServerClick="fileDel_ServerClick" runat="server" />
作用是按了后删除什么东西,想给他加个确认,即按了按钮后跳出一个确认框,确定后才执行,否则不执行。
于是按照网上的办法给他加个属性:
onclick="return confirm('确定删除?');"
最后生成的HTML代码如下:
<input onclick="return confirm('确定删除文章?'); __doPostBack('ctl07','')" type="button" value="删除" />
但是没有作用,无论是确认还是取消,后面的__doPostBack()部分都没执行。
又在网上查了一下文章,说
onclick="return confirm('确定删除?');"
这样不行,必须:
onclick="if(confirm('确定删除?')){}else{return false;};"
必须这样。
我试了一下,确实成功了。但是总感觉
onclick="if(confirm('确定删除?')){}else{return false;};"
又长又臭,于是做了个js函数:
function confirmX(xxx) {
if(confirm(xxx)){}else{return false;}
};
给相应的按钮加入这个属性:
onclick="confirmX('确定删除?');"
结果这样,又出问题了,无论是确认还是取消,后面的__doPostBack()部分都会执行。
我的问题是,有没有一个简单优雅的办法解决这个问题?每个需要确定的按钮都加一个形如
onclick="if(confirm('确定删除?')){}else{return false;};"
的属性显得很臃肿,把它做成js函数后又没法用,或者是我函数写错了?
2010-08-12 08:22 网友采纳
onclick="confirmX('ctl07','');"
function confirmX(a,b) {
if(confirm("确定删除么?")){
__doPostBack(a,b)
}
else{return false;}
}
为控件添加onclientclick事件 触发return confirm
为OnClientClick=“return confirm('确定?')”
如果想更方便,那就在页面基类中重写初始化事件,遍历page控件中的button控件,为该控件注册确认删除事件
评论 | 给力0不给力0
2010-08-12 09:03 冯益斌 | 十级
首先最好把input换成asp:button控件,这样可以同时使用onclick(服务器端事件)和onclientclick(客户端事件)
<asp:Button ID="btnDelete" runat="server" Text="删除" onclick="btnDelete_Click" OnClientClick="return confirm('确认要删除?')"/>
参考资料: http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.button.onclientclick(VS.80).aspx
评论 | 给力1不给力0
2010-08-12 17:27 wangbenson | 五级
脚本定义一个类是myconfirm窗体 添加连个方法show,用于显示提示窗口 添加两个事件afterConfirm, afterCancel 脚本调用onclick的时候,创建myconfirm一个实例,并且绑定他的afterConfirm, afterCancel这两个事件,就是两个函数而已。 即可搞定你的问题吧 或者用现成的脚步库