Tim*_*ear 2 javascript asp.net
出现此问题ASP.NET:如果使用onclick,则不会调用OnServerClick事件处理程序
我实施了一个解决方法:
<button id="idBtnPrint" runat="server" type="submit" onserverclick="BtnPrint_Click" onclick="confirmImpression();">print</button>
Run Code Online (Sandbox Code Playgroud)
javascript函数:
function confirmImpression() {
if (!confirm("sure ?"))
arg.whatever;
}
Run Code Online (Sandbox Code Playgroud)
确认是积极的,当取消回发没有运行时(因为我想要)启动回发只是因为生成错误js"arg未定义"(正常,因为arg不是instanciate)脚本被锁定,因此没有回发(因为我想要)太).
但如何正确地做到这一点.我不会在浏览器的状态栏中看到错误.
欢迎任何建议!
谢谢
小智 11
我遇到了一个与此非常相似的问题,尽管这个问题已经过时了,但我认为我的回答可能有助于未来的人.如果你有一个javascript方法应该返回一些东西并将它放在OnClientClick中,它仍然不会返回方法真正返回的内容.为了解决此问题,您必须在OnClientClick中返回该方法.
OnClientClick="return MethodName()"
Run Code Online (Sandbox Code Playgroud)
您还需要确保您的方法从确认对话框返回正确的true/false.
function MethodName() {
if (!confirm('Are you sure you want to X?')){
return false;
}
else{
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
只需将确认包装在if块中,如果确认失败则返回false.生成回发的标准javascript将附加到检查中,因此如果确认操作则运行.
<button id="idBtnPrint" runat="server" type="submit"
onserverclick="BtnPrint_Click"
onclientclick="if (!confirm('sure ?')) { return false; }">print</button>
Run Code Online (Sandbox Code Playgroud)
arg未定义的原因是您不将其用作参数,也不在窗口对象中定义.我假设您正在尝试挂钩验证系统,但在这种情况下它不起作用,因为验证逻辑没有被调用.如果用户以否定方式回答,您只想停止执行客户端处理程序,上面的代码将执行此操作.
虽然引用问题中的答案也会起作用,但我更喜欢使用完整的javascript语句来帮助理解正在发生的事情.
| 归档时间: |
|
| 查看次数: |
19592 次 |
| 最近记录: |