抓狂了,JQuery UI Dialog 为什么不能模拟confirm 高分求解!!!

xjuly2014 2014-07-24 05:18:32
关键代码如下:

<input id="btnDel1" type="button" onclick='return confirm("确定要删除吗?"); alert("run here");' value="删除1" />
<input id="btnDel2" type="button" onclick='confirm("确定要删除吗?"); alert("run here");' value="删除2" />
<input id="btnDel3" type="button" onclick='$("#divDialog").dialog({ model: true }); alert("run here");' value="删除3" />
<input id="Button1" type="button" onclick='$("#divDialog").dialog({ model: true }); alert("run here");' value="删除4" />

<div id="divDialog" title="提示" style="display:none;"></div>


原本想用JQuery UI的dialog模式对话框替换confirm,结果发现行不通,这里有两个问题
1、dialog以model参数调用不会冻结
2、既然不会冻结,也就没有获取返回值的概念

dialog本来就没法模拟confirm吗,还是我的调用方式不对,求解
...全文
180 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjuly2014 2014-07-25
  • 打赏
  • 举报
回复
引用 8 楼 sp1234 的回复:
dialog,当它被close时,会执行回调,此时你就可以进行后续处理操作。或者发指令让dialog进行close的程序,可以调用你注册地回调函数。 但是不论是哪一种方式,总之这是异步回调机制,不是什么顺序处理程序。
一个组件也好通常都有同步和异步两个选项,既然是model模式的,为什么dialog的调用不阻塞,或者说冻结,这就是我困惑的 也就是说原本一个简单的 在asp.net环境下,在runat="server“的button上,onclick="return confirm("是否删除?");" 用JQuery UI的dialog来实现的话就会变得很复杂,因为他不阻塞,没有返回值

    //confirm 无冻结
    function divConfirm(message, callback) {
        $("#divDialog").text(message);
        $("#divDialog").dialog({
            resizable: false,
            title: "confirm",
            buttons: [{
                text: "确定", click: function () {
                    $(this).dialog("close");
                    var action = "ok";
                    callback(action);
                }
            },
                {
                    text: "取消", click: function () {
                        $(this).dialog("close");
                        var action = "cancel";
                        callback(action);
                    }
                }
            ],
            modal: true
        });        
    }

<input id="btnDel5" runat="server" type="button" onclick="divConfirm('确定要删除吗?', function (action, value) { if (action == 'ok') {  __doPostBack('btnDel5', '');} }); return false;" onserverclick="btnDel5_ServerClick" value="删除5" />
1、dialog确定没办法阻塞吗 2、如果是,那么求更好解决方式
  • 打赏
  • 举报
回复
dialog,当它被close时,会执行回调,此时你就可以进行后续处理操作。或者发指令让dialog进行close的程序,可以调用你注册地回调函数。 但是不论是哪一种方式,总之这是异步回调机制,不是什么顺序处理程序。
  • 打赏
  • 举报
回复
引用 楼主 xjuly2014 的回复:
dialog本来就没法模拟confirm吗,还是我的调用方式不对,求解
你对“异步程序”的理解方式不对。你用顺序编程的思路去理解异步程序,从基本机制上是南辕北辙的。 异步执行的程序设计都使用“回调”来进行接下来的操作的。只有那种传统的“顺序执行”的程序,才会阻塞在那里等着返回值。
Hello World, 2014-07-24
  • 打赏
  • 举报
回复
dialog可以添加按钮的,在按钮事件中写操作
xjuly2014 2014-07-24
  • 打赏
  • 举报
回复
我问的是JQuery UI,不是JQuery http://jqueryui.com/
md5e 2014-07-24
  • 打赏
  • 举报
回复
已经有jQuery了,难道你还是要用纯的js?
xjuly2014 2014-07-24
  • 打赏
  • 举报
回复
不是FineUI哦
xjuly2014 2014-07-24
  • 打赏
  • 举报
回复
是JQuery UI
md5e 2014-07-24
  • 打赏
  • 举报
回复
http://fineui.com/demo/#/demo/grid/grid_rowcommand.aspx 按钮2

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧