0

我有一个按钮,当我单击它时,会弹出一个模式。然后我输入数据并使用ajax提交表单。提交数据后,我希望模式关闭。这是我尝试过的(相关代码)

$form=$this->beginWidget('CActiveForm', array(
        'id'=>'employee-task-form',
        'enableAjaxValidation'=>true,
        'clientOptions'=>array(
            'validateOnSubmit'=>true,
            'afterValidate'=>'js:function(form,data,hasError){
                        if(!hasError){
                                $.ajax({
                                        "type":"POST",
                                        "url":"'.CHtml::normalizeUrl(array('employeetasks/create','ajax')).'",
                                        "data":form.serialize(),
                                        "success":function(){
                                        toastr.success("Saved successfully.", "Success");
                                         $("#ajaxModal").modal("close");     
                                        // $("#ajaxModal").modal("hide");

                                        },

                                        });
                                }
                        }'
        ),
)); 


<script type="text/javascript">
jQuery('document').ready(function($){
jQuery("body").on("click", ".popup", function (e)
{
    var url = $(this).attr("href");
    $("#ajaxModal").find(".modal-body").load(url + "?ajax=1", false, function (responseText, status, req)
    {
        if (status != "error") {
            $("#ajaxModal").modal({backdrop: "static", keyboard: true});
        }
        else
            toastr.error("Failed to load", "Loading failed");
    });
    e.preventDefault();
});
});
</script>

数据正在被保存,即 Ajax 函数正在工作,烤面包机也是如此,但模式没有关闭,我收到类似 Uncaught TypeError: $(...).modal is not a function 的错误。

编辑

我在 Yiiframework 论坛链接中发布了同样的问题

他们说我无法关闭模式,因为modal() 函数在 jQuery 中不存在是这样吗?

我能够使用此代码隐藏模态,$("#ajaxModal").hide(); 但背景仍为灰色(与弹出模态时的颜色相同)

编辑

嗨,我试过这样

  $("#ajaxModal").hide();
               $("body").removeClass("modal-open");

               $(".modal-backdrop").remove(); 

然后我要关闭模态但下次当我单击按钮时模态不会弹出。

4

1 回答 1

0

我找到了错误的原因。我在 bootstrap.min.js 之前调用了 modal。这就是我收到 TypeError: $(…).modal is not a function 错误的原因。

于 2016-01-06T07:18:01.470 回答