当前位置: 首页 > 知识库问答 >
问题:

如何在yii2中关闭boostrap对话框?

澹台星剑
2023-03-14

我正在尝试这样做:

>

  • 通过URL打开带按钮的引导对话框。控制器中Url的动作是"myController/updateDialog"

    通过打开对话框,这将加载一个页面(myController/updateDialog),其中包含一个表单来填充数据(表单有一个提交按钮)。

    如果我通过点击按钮提交表单,在我的控制器中,我尝试关闭对话框并刷新原始页面中的一些内容,这是我用JS做的。但它不起作用。我总是用新的URL在空白处获得窗口导航器;我希望保留调用对话框的原始页面,以查看更改,方法与Yii 1中的cguidialog相同。x

    控制器的代码是:

    public function actionUpdatedialog($id)
    { 
       $model = $this->findModel($id);
        if ($model->load(Yii::$app->request->post() &&  $model->save() )) {           
           $this->view->registerJs("window.close(); window.opener.fn.yiiGridView.update('books-heads'); return false;",
                $this->view::POS_HEAD);//try close and finally 
         die(); //finally 
    
        } 
        return $this->render('update', [
            'model' => $model,
        ]);
    }
    

    我试过,用:

    “window.close();”

    "$(#Mymodal). modal('隐藏');"等,但无法排序。


  • 共有1个答案

    郑胡媚
    2023-03-14

    您应该通过ajax提交表单,接受并确定返回值。如果成功,请调用$(#您的模式框)。modal('hide')关闭对话框。例如:

    public function actionUpdatedialog($id)
    { 
       $model = $this->findModel($id);
        if ($model->load(Yii::$app->request->post() &&  $model->save() )) {           
           \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
           return ['code' => 200, 'message' => 'success'];
    
        } 
        return $this->render('update', [
            'model' => $model,
        ]);
    }
    

    在页面中:

    $("#formName").on('submit', function () {
        // or use ajax
        fetch(...).then(response => {
            response.json().then(json => {
                if (200 === json.code) {
                    $("yourModalBox").modal('hide');
                } else {
                    alert(json.message);
                }
            });
        });
    });
    

    从谷歌翻译回答翻译,希望这对你有帮助。

     类似资料:
    • 我想在我的编码中添加对话框。对话框可以弹出。假设用户按下ok按钮后对话框将关闭,但对话框将自动关闭。这是我的密码。有什么问题吗?

    • 问题内容: 遵循我们在如何在MySQL中关闭sqlalchemy连接中的注释之后,我正在检查SQLAlchemy创建到数据库中的连接,如果不退出Python,我将无法关闭它们。 如果我在python控制台中运行此代码,它将保持会话打开状态,直到我退出python为止: 我发现要关闭它的唯一解决方法是在最后调用。 根据我上面给出的链接中的评论,我的问题现在是: 为什么需要关闭会议? 还不够吗 问题答

    • 本文向大家介绍Bootstrap Modal对话框如何在关闭时触发事件,包括了Bootstrap Modal对话框如何在关闭时触发事件的使用技巧和注意事项,需要的朋友参考一下 下表列出了模态框中要用到事件。这些事件可在函数中当钩子使用。 实例 下面的实例演示了事件的用法: 更多内容请点击专题《Bootstrap Modal使用教程》进行学习,希望大家喜欢。 如果大家还想深入学习,可以点击这里进行学

    • 我一直在尝试创建yii\jui\对话框,该对话框在表单视图中单击按钮时触发。对话框本身将包含一个使用Yii 2.0的Gridview小部件。 我已经成功地创建了这个对话框,并用Gridview小部件填充它。我遇到的唯一问题是对话框中的Gridview无法正确过滤。虽然过滤过程很好,但每次过滤Gridview时,对话框模式也将关闭。 我还尝试通过在Pjax小部件中封装gridview来使用Pjax。

    • 问题内容: 使用Swing开发GUI。 我有一个自定义对话框,用于选择要在应用程序中打开的文件。它的类扩展并包含a和其他组件,可以将其切换为显示或隐藏。 该组件已经可以单独处理ESC键:当显示文件选择器(嵌入在我的对话框中)并且按ESC时,文件选择器将隐藏自身。 现在,我希望对话框执行相同的操作:当我按ESC时,我希望对话框关闭。请注意,当显示嵌入式文件选择器时,ESC键应仅将其隐藏。 有任何想法

    • 问题内容: 加载Web视图后,我需要什么代码来创建对话框? 我试过了 没用 问题答案: :o webview.setWebViewClient(new homeClient()); homeClient() ???? 试试这个 更新:: 这是一个很好的例子。 Android WebView和不确定性进度解决方案