【发布时间】:2014-03-26 19:40:01
【问题描述】:
我在我的 Web 项目中添加了一个 JQuery Masked Input 插件,但它根本不起作用。
插件可以在这里找到:http://digitalbush.com/projects/masked-input-plugin
我在我的 JSP 中包含了 JQuery 库和 Masked Input 插件,并为我的 html <input> 元素调用了 mask 函数:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- JS --->
<script src="js/jquery-1.11.0.js"></script>
<script src="js/masked-input-jquery-1.3.1.js"></script>
<title>Test</title>
</head>
<body>
<script type="text/javascript">
$("#name").mask("99/99/9999");
</script>
<form id="" method="" action="">
<div>
<label for="name">
Name<b style="color: red">*</b>
</label>
<input name="studentName" maxlength="255" autofocus="autofocus" type="text" id="name"/>
......
当我访问我的 JSP 时,甚至在文本字段中输入任何内容之前,Chrome 控制台上都会显示以下内容:
未捕获的 ReferenceError:未定义 iMask
你能帮帮我吗?代码有什么问题吗?
【问题讨论】:
-
我认为它不会解决您当前的问题,但是您对 .mask 的调用将不起作用,因为它在解析页面的其余部分之前运行。您需要将调用包装在 jQuery 文档就绪函数中: $(document).ready(function(){... your code here ... });
-
在 document.ready 中的包装实际上应该可以解决问题。 jQuery 和 mask 插件已经执行,因为它们在头部。但是当你做 $('#name').mask(...) 它什么都不选择。在文档准备好之前调用插件上的 .mask 可能意味着掩码尚未加载它需要的所有内容。即使您没有收到该错误,它仍然无法正常工作,因为您需要 $('#name') 来选择尚未创建的 dom 元素。
-
@HJ05 您应该将其作为答案发布,以便 OP 接受并投票。
标签: javascript jquery masking