2011-11-08 76 views
0

我在我的asp.net MVC 3应用程序中创建了一个局部视图,并且想创建一个Jquery UI日历。我已经加入此javascript:在asp.net MVC 3中的JQuery UI日历3部分视图

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#DateOpened").datepicker(
      { 
       dateFormat: 'dd/mm/yy', 
       changeMonth: true, 
       changeYear: true, 
       yearRange: startYearRange + ':' + endYearRange 
      }); 
    }); 
</script> 

和HTML看起来像这样:

@using (Ajax.BeginForm("UpdateAccountDetails", null)) 
{ 
<div class="editor-label"> 
        @Html.LabelFor(model => model.DateOpened) 
       </div> 
       <div class="editor-field"> 
        @Html.EditorFor(model => model.DateOpened) 
        @Html.ValidationMessageFor(model => model.DateOpened) 
       </div> 

} 

但它没有显示日历。有什么建议吗?

+0

这不是HTML,请向我们展示由这些帮助程序生成的实际HTML。 – Juri

+0

在实际的HTML中,ID是DateOpened – DotnetSparrow

+0

是否有任何其他的JavaScript在您的网页上工作,也许错误是打破了你的DatePicker代码?检查你的jQuery参考是否正确。 –

回答

1

你动态加载的形式(通过某种AJAX行为)? 您的脚本是否在呈现表单的局部视图中标记?

如果您动态加载视图,则不会附加datepicker行为,因为它是在实际字段添加到DOM之前声明的。

也是你的脚本正确连接到页面(从视图源中可见)? 您可以尝试从浏览器内的某个JS控制台执行相同的脚本代码,以查看它是否正常工作。 如果它在那里工作,那么您在加载视图时遇到问题,这意味着脚本在实际字段在DOM之前被加载。

+0

谢谢,我想知道为什么datepicker不工作在我的动态添加弹出。我用一个蒙面输入来代替。 – Vinzz

0

您是否在您的部分视图的内容或其包含的母版页中引入了对datepicker插件脚本的引用?

+0

是的我在部分视图中添加了Jquery UI,如下所示: DotnetSparrow

0

由于您没有真正显示助手正在生成的HTML代码,因此很难理解该问题。

但我敢肯定这里的问题是,你的选择不符合任何输入元素:

$("#DateOpened").datepicker(...) 

你肯定有一个字段ID DateOpened?或者它是这样调用的“名称”属性?尝试

$("*[name=DateOpened]").datepicker(...) 
+0

这是html呈现: DotnetSparrow

0

而不是使用.EditorFor

@Html.EditorFor(model => model.DateOpened) 

尝试

@Html.TextBoxFor(model => model.DateOpened, new { id = @DateOpened })