0

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

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

但是我有这个错误: Uncaught TypeError: Object [object Object] has no method 'mask' 我该如何解决这个问题?

4

1 回答 1

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不再需要的调用(并且您在显示的代码中弄错了,因为您忘记在它前面加上 a 前缀$)。

于 2013-01-11T22:35:32.417 回答