我有一个脚本,它将在表单处理时隐藏提交按钮,以防止多次单击该按钮。最近似乎这并不是一直有效。
我可以验证每次都在加载验证 jQuery 文件。当我使用从我的服务器或 CDN 加载的文件时,我并没有什么不同。
该错误仅在从磁盘缓存加载文件时出现。我通过在 jQuery 文件后添加一个随机版本号暂时解决了这个问题,但我想知道使用磁盘缓存时可能导致中断的原因是什么?
浏览器控制台列出了这个错误:
custom-quote-form:21 Uncaught TypeError: $(...).validate is not a function
at HTMLDocument.<anonymous> (custom-quote-form:21)
at j (jquery.min.js:2)
at Object.fireWith [as resolveWith] (jquery.min.js:2)
at Function.ready (jquery.min.js:2)
at HTMLDocument.I (jquery.min.js:2)
jquery.min.js 首先加载,然后是 CMS 缓存的 JS 文件,之后是 jquery 验证文件。
这是脚本
<script>
$(function() {
$("form[name='customBuilder']").validate({
// remove error label
errorPlacement: function(error, element) {},
rules: {
fname: "required",
lname: "required",
phone: "required",
company: "required",
Email: {
required: true,
email: true
},
},
submitHandler: function(form) {
$("#loading-img").css("display", "block");
form.submit();
var elem = $("#submitMessage");
elem.css("display", "none");
setTimeout(function() {
elem.css("display", "");
}, 10000);
}
});
});
< /script>