【问题标题】:jQuery datepickers not initializing each time modal is loaded每次加载模态时,jQuery datepickers 都不会初始化
【发布时间】:2014-05-09 20:53:29
【问题描述】:

我在我的 Web 应用程序中使用模式来进行用户输入。用户第一次使用模式输入数据时,它可以正常工作。但是,如果用户在第一个模式之后打开另一个模式,则 jQuery 日期选择器不会初始化。用户必须刷新页面才能使用 datepicker 输入第二条记录。模态体通过 AJAX 加载。在包含模态正文的 HTML 文件的底部,包含一些脚本来初始化日期选择器。以下是模态内容的一般结构:

<div class="modal-content">
    <div class="modal-header">
    ...more modal content goes here...
    </div>
</div>

<script>
    $('.date-picker').datepicker({
        rtl: App.isRTL(),
        autoclose: true
    });
</script>

由于某些内容是由 PHP 生成的(即在编辑记录时),因此不能简单地将其包含在请求页面上。我该如何解决这个问题?

【问题讨论】:

    标签: javascript jquery ajax twitter-bootstrap datepicker


    【解决方案1】:

    问题是脚本仅在第一次显示模式时被触发。我通过使用以下内容覆盖 ajax 中的默认远程模式加载函数来解决它:

    $("[data-toggle='open_modal']").click(function(event) {
            event.preventDefault();
            $modal = $($(this).attr("data-target"));
            $modal.modal().find('.modal-content').load($(this).attr('href'), function() {
                $('.date-picker').datepicker({
                    rtl: App.isRTL(),
                    autoclose: true
                });
            });
        });
    

    请注意,您不能离开 data-toggle='modal' 因为它会同时尝试使用引导加载功能。将其更改为其他内容,即。 open_modal。

    【讨论】:

      猜你喜欢
      • 2018-07-21
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多