我正在使用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' 我怎么解决这个问题?
答案 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
调用(并且您在显示的代码中出错,因为您忘记了用$
)作为前缀。