(JQuery UI)有没有一种方法可以检测对话框中按下了什么按钮's beforeClose()处理程序

(JQuery-UI) Is there a way to detect what button was pressed in a dialog's beforeClose() handler?

本文关键字:按钮 什么 处理 程序 beforeClose 对话框 有没有 UI JQuery 一种 检测      更新时间:2023-09-26

我的JavaScript代码会显示一个对话框,请求用户提供一些信息,以及两个按钮(OK和Cancel)。当用户单击"确定"按钮时,我想使用dialogbeforeClose处理程序来验证输入(这样,如果用户没有做出正确的输入,他/她仍然"在"对话框中,并有机会进行更正)。有没有办法告诉我两个按钮中的哪一个被按下了?(很明显,如果用户按下Cancel,则无需输入验证,对话框可以继续并关闭,即我的beforeClose可以返回true)。我看到beforeClose有两个输入,eventui,但这两个输入似乎都不包含我想要的信息。

您只需在关闭框之前绑定一些其他函数(如果表单未验证,则根本不调用关闭)。只需在$(this).对话框("关闭")之前添加您需要的任何check或ajax调用。发件人:http://jqueryui.com/demos/dialog/#modal-确认

<script>
    $(function() {
        // a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore!
        $( "#dialog:ui-dialog" ).dialog( "destroy" );
        $( "#dialog-confirm" ).dialog({
            resizable: false,
            height:140,
            modal: true,
            buttons: {
                "Delete all items": function() {
                    $( this ).dialog( "close" );
                },
                Cancel: function() {
                    $( this ).dialog( "close" );
                }
            }
        });
    });
    </script>

我在我的一个应用程序中都有这些,我没有到处进行自定义验证,而是在对话框中的表单上添加了一个内联验证。它将为您进行拦截,轻松验证字段,如果正确,就让它飞起来。如果没有,它将自动发出通知。

你当然可以自制这个解决方案,但已经有人为你做了这项工作。为更大的问题保存代码。

如果你决定自己做,只需将操作放入文档中描述的按钮功能中即可。