在JQuery引导程序模型的部分视图中具有日期时间选择器

Ash*_*our 1 asp.net-mvc jquery datetimepicker twitter-bootstrap

我想要一个带有日期选择器的引导程序模型。我已经复制了此示例中的所有内容,并且工作正常。

http://jsfiddle.net/sudiptabanerjee/93eTU/

问题是,我的对话框内容是部分视图,并使用JQuery设置。它似乎从不显示日期选择器。我已经复制了代码的相关部分。

所以在屏幕上有一个像

<button type="button" class="btn btn-primary" id="btnEdit"
        data-itemId=@item.ItemId
        data-toggle="modal" 
        data-target="#myModal">
        Edit
</button> 
Run Code Online (Sandbox Code Playgroud)

哪个具有JQuery点击事件

$(document).on("click", "# btnEdit", function (e) {
   $.ajax({ url: "/Item/Edit",
            datatype: "text",
            data: { itemId: $(this).attr('data-ItemId) },
            type: "GET",
          }).done(function (partialViewResult) {
          $(".modal-content").html(partialViewResult);
    });
});
Run Code Online (Sandbox Code Playgroud)

}); 然后转到名为ItemController的MVC控制器,并调用Edit,以获取部分视图公共ActionResult Edit(Guid itemId){return PartialView(“ _ Edit”,GetByItemID(itemId)); }

编辑部分视图如下所示,这就是不显示id为datepicker的输入的原因

@model Project.Models.Item
@using (Html.BeginForm())
{
   @Html.AntiForgeryToken()
   <div class="form-horizontal">
     <div class="modal-header">
         <button type="button" class="close" data-dismiss="modal" aria- label="Close"><span aria-hidden="true">&times;</span></button>
         <h4 class="modal-title" id="myModalLabel"> Item</h4>
     </div>
     @Html.ValidationSummary(true, "", new { @class = "text-danger" })
     <p>Date: <input type="text" id="datepicker" class="datepicker"></p>
 </div>
}

@section Scripts {
   @Scripts.Render("~/bundles/jqueryval")
 }
Run Code Online (Sandbox Code Playgroud)

有JS被调用,它为datepicker类的所有内容提供了一个datepicker。当文本框位于其他任何地方时,它都可以工作,请在对话框中使用

 $(".datepicker").datepicker();
Run Code Online (Sandbox Code Playgroud)

我也有CSS这样做

.clsDatePicker {  z-index: 100000; }
Run Code Online (Sandbox Code Playgroud)

小智 5

问题是您的JS for datetimePicker插件在从主视图添加模态内容之前已加载,在这种情况下,当DOM已经准备就绪时,插件将无法从视图中动态添加元素。

从动态视图添加内容后,尝试初始化datetimepicker

$(document).on("click", "# btnEdit", function (e) {
   $.ajax({ url: "/Item/Edit",
            datatype: "text",
            data: { itemId: $(this).attr('data-ItemId) },
            type: "GET",
          }).done(function (partialViewResult) {
          $(".modal-content").html(partialViewResult);
$(".datepicker").datepicker();
    });
});
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 :)

  • 非常感谢。它挽救了我的一天。:) (2认同)