【发布时间】:2009-09-29 21:00:14
【问题描述】:
我正在尝试将 jqueryUI 的 datepicker 合并到一个局部视图中,如下所示:
<% using (Ajax.BeginForm("/EditData",
new AjaxOptions { HttpMethod = "POST",
UpdateTargetId = "div1" }))
{%>
Date:
<%= Html.TextBox("date", String.Format("{0:g}", Model.date), new { id = "datePicker"})%>
<% } %>
<script type="text/javascript">
$(function() {
$("#datePicker").datepicker();
});
</script>
当我直接调用这个部分视图的 url 时,它只呈现这个视图,日期选择器可以完美地工作。 (为了进行测试,我将所需的 jquery 和 jqueryui 脚本以及 css 引用直接添加到局部视图)
但如果我使用Ajax.Actionlink 将这个部分视图加载到一个 div(称为 div2,提交上述表单应该更新 div1)中,如下所示:
<div id="div1">
<%= Ajax.ActionLink("Edit", "/EditData", new { id = Model.id }, new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "div2" } )%>
</div>
<div2>placeholder for the form</div>
日期选择器将不再出现。 我最好的猜测是加载的 html 中包含的 javascript 没有被执行,
($(document).ready(function() {
$("#datepicker").datepicker();
}); doesnt work either
如果是这种情况,我应该如何以及在哪里调用 $("datepicker").datepicker(); ?
(把它放在ajax.actionlink 的ajaxoptions 中作为oncomplete = "$(function() {
$('#datepicker').datepicker();});" 仍然不起作用。
如果不是这样,那我的问题在哪里?
【问题讨论】: