0

我知道这是一个经常讨论的问题。但没有一个答案是令人满意的。

隐藏后,我无法重置/重新初始化引导模式。

正如其他线程之一所建议的,我有以下代码:

$('#myModal').on('hidden', function() {
    $(this).data('modal', null);
});

在此之后,如果再次显示模态框,则仍然保留上一次显示中添加的内容。

这是演示该问题的jsfiddle 链接

  1. 模态框第一次显示后,如果点击“保存更改”,会在模态框添加一些动态元素。
  2. 然后,如果单击关闭按钮,模态将被隐藏。
  3. 如果再次调用 modal,它会显示在其先前调用期间动态添加的元素。

重置此模式的最佳方法是什么。

如前所述,以下代码似乎不起作用:

$(this).data('modal', null);

其他替代方法是手动将字段重置为原始状态。

然而,在我的实际应用中,我正在为模态创建许多动态和复杂的元素,因此重置选项很繁琐。

4

1 回答 1

1

模式不知道您的输入字段。您需要手动清除隐藏事件中的那些:

$('#myModal').on('hidden', function() {
    $('inputEmail').val(null);
});

您可以为引导模式创建一个自定义包装器,在其中给它一个要清除的 jQuery 对象数组:

var myModal = function (id, inputs) {
    $(id).on('hidden', function () {
        $.each(inputs, function(i, input) {
            input.val(null);
        });
    });
    return $(id).modal();
};

这只是一个粗略的想法......

最好的方法是使用 JavaScript 框架,如 Knockout.js、Angular.js、Backbone.js 或其他。他们真的可以帮助您解决类似的事件问题。

于 2013-10-10T08:34:17.677 回答