0

我在尝试弄清楚如何在 Yii 的模态框中呈现表单时遇到了一些麻烦。

目前我有以下代码,我刚刚在其中获得了一个链接来显示一个模式框。

CHtml::link(' Email this Gift', '#', array( 

        'id' => 'giftModal',
        'onclick'=>'js:bootbox.confirm("hello world")',
            )
        );

我真的需要在模态框中呈现一个表单。我该怎么做,我实际上已经花了很长时间研究如何做到这一点,但我显然一直在搜索不正确,所以希望得到任何指导。

谢谢

4

1 回答 1

2

将您想要的内容放入隐藏的 div 中,在这种情况下,为方便起见,我将表单放入其他视图中。

    <!-- dialog contents on hidden div -->   

   <div id="modal-content" class="hide">
    <div id="modal-body">
<!-- put whatever you want to show up on bootbox here -->
    <?php
        //example
        $model = Category::model()->findByPk(1);
        $this->renderPartial('//test/child-view', array('model'=>$model)) ?>
    </div>
</div>

然后将消息传递到具有上述内容的引导箱

<script>
    $(function(){
        bootbox.confirm($('#modal-body').html());
</script>

当您使用表单时,模态框的按钮在您的表单之外,您必须进行一些自定义以使您的表单正常工作。

当单击引导箱的“确定”按钮时的示例,您调用通过脚本提交表单

$('my-form-selector').submit();

重要提示:因为在这段代码中我从隐藏的 div 中获取了 HTML,所以会有两种形式(一种在 bootbox 上,一种在隐藏的 div 上)。您必须添加类bootbox作为表单元素的前缀,以指示您在引导箱上操作的表单(在我的情况下,bootbox它只是由其自身库生成的类,并且是模态框上内容的父级,my-form-selector可以是#form-id,.form-class-name等)

 bootbox.confirm($('#modal-body').html(), function(result){
            if(result){
                console.log($('.bootbox my-form-selector').parent().parent()); //<--it should print the object of modal bootbox, it ensures the form is in modal box, not one on hidden div-->
                $('.bootbox my-form-selector').submit();
            }});

我认为你应该使用dialog而不是confirm,因为在那里你可以完全自定义你的模态框

于 2013-08-15T03:08:51.687 回答