如何在ASP.NET MVC中加载PartialView后运行javascript?

时间:2012-12-06 04:47:24

标签: asp.net-mvc jquery

我正在尝试让jQuery插件meioMask在MVC Partial View中工作。

作为试验,以下作品:

<head>
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="jquery.meio.mask.min.js" charset="utf-8"></script>
<script type="text/javascript">
    jQuery(function($) {
        $('#StartTimeText').setMask('time');
});
</script>
</head>

<body>
<input type="text" id="StartTimeText" />
</body>

文本编辑框会应用蒙版编辑。但是,我的文本编辑框位于MVC局部视图中,当用户单击主视图中的项目时,该视图会显示。在主视图<head>中,我添加了以下内容:

<script src="@Url.Content("~/Scripts/jquery-1.8.3.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.meio.mask.min.js")" type="text/javascript"></script>

CustomFormPartialView.cshtml中,我有以下内容:

<script type="text/javascript">
    jQuery.ajax(
      function ($) {
        $('#StartTimeText').setMask('time');
      }
    );
</script>

<input type="text" id="StartTimeText" />

但是文本框仍然是一个常规文本框,没有应用编辑掩码。我假设这是因为setMask函数没有运行。我也尝试过使用jQuery.getjQuery.post,但没有一个有任何区别。

很抱歉,如果已经提出这个问题,我已经尝试了其他解决方案而没有任何运气。我在这个领域有点新,所以如果有人可以发布尽可能完整的代码示例,那将非常感激。感谢。

编辑:

根据JasCav的建议,我将以下内容放在文件的<head>部分。据我所知,ajax函数根本没有运行。这是使用DevExpress的MVC调度程序,如果有任何帮助。我在FireBug中没有收到任何错误。

<script type="text/javascript">
  jQuery.ajax({
    url: '/WebTMS_MVC/Calendar/SchedulerPartial',
    type: 'POST',
    success: function (data, textStatus, xhr) {
      $('#StartTimeText').setMask('time');
    }
  });
</script> 

1 个答案:

答案 0 :(得分:0)

你可以使用jQuery的ajax函数提供一些回调,你可以用它们在完成ajax调用后执行特定的动作(成功和完成两个)。请参阅jQuery's documentation for the ajax function

$.ajax({
  url: yourUrl,
  type: "GET",
  data: formData,
  success: function(data) {
    // Do your stuff here.
});