如何在TextBoxFor中放置掩码日期和时间?

时间:2013-01-11 22:22:00

标签: javascript asp.net-mvc jquery-ui asp.net-mvc-4

我正在使用ASP.Net MVC4与视图引擎Razor合作。我喜欢把掩码日期和时间放在TexBoxFor中我为jugery jquery.maskedinput-1.3.min.js安装并添加到视图中

(document).ready(function () {
        $("#FechaDen").mask("99/99/9999");
        $("#HoraDen").mask("99:99:99");
    });

但我有这个错误:未捕获TypeError:对象[object Object]没有方法'mask' 我怎么解决这个问题?

1 个答案:

答案 0 :(得分:1)

您似乎忘记了引用页面中的jquery.maskedinput插件:

<script type="text/javascript" src="@Url.Content("~/scripts/jquery.maskedinput-1.3.min.js")"></script>

确保路径正确并且插件实际位于此文件夹中。使用javascript调试工具(如FireBug)的“网络”选项卡可确保脚本引用没有404错误。

还要确保在 jQuery之后添加了这个脚本。要小心,因为在ASP.NET MVC 4 Internet项目模板中,~/Views/Shared/_Layout.cshtml文件将jquery呈现为DOM末尾的包:

    @Scripts.Render("~/bundles/jquery")
    @RenderSection("scripts", required: false)
</body>

因此,如果您将此引用放在视图中,请确保在scripts部分内发生这种情况:

@section scripts {
    <script type="text/javascript" src="@Url.Content("~/scripts/jquery.maskedinput-1.3.min.js")"></script>
    <script type="text/javascript">
        $("#FechaDen").mask("99/99/9999");
        $("#HoraDen").mask("99:99:99");
    </script>
}

另请注意,由于此脚本现在位于DOM的末尾,我已经摆脱了不再需要的$(document).ready调用(并且您在显示的代码中出错,因为您忘记了用$)作为前缀。