到目前为止,我一直在使用Bootstrap 4.0.0-beta2和插件jquery-Validate与1.17.0来验证表单数据。 那没关系。
现在我去了Bootstrap 4.0.0稳定'并得到以下错误:
jquery.validate.min.js:4 Uncaught TypeError: Cannot read property 'apply' of undefined. Exception occurred when checking element idUserNameProvRegister, check the 'remote' method.
at Function.a.ajaxPrefilter.a.ajax (jquery.validate.min.js:4)
at a.validator.remote (jquery.validate.min.js:4)
at a.validator.check (jquery.validate.min.js:4)
at a.validator.element (jquery.validate.min.js:4)
at a.validator.onfocusout (jquery.validate.min.js:4)
at HTMLInputElement.b (jquery.validate.min.js:4)
at HTMLFormElement.dispatch (jquery-3.2.1.slim.min.js:3)
at HTMLFormElement.q.handle (jquery-3.2.1.slim.min.js:3)
at Object.trigger (jquery-3.2.1.slim.min.js:3)
at Object.simulate (jquery-3.2.1.slim.min.js:3)
问题似乎来自jquery-Validation插件所需的这部分代码:
$("#idFormProvRegister").validate({
rules:{
UserNameProvRegister: {
required: true,
length_username: true,
alphanumeric: true,
remote: {
url: "ajax/IstUserNameVergeben.php",
type: "post",
data: {
UserNameProvRegister: function(){
return $("#idUserNameProvRegister").val();
}
}
}
},
.....
除了这些cdns(新的Bootstrap版本需要)之外,我没有对自己的代码进行任何更改:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
在这两种情况下(&#39; BS 4.0.0 beta2&#39;以及&#39; BS 4.0.0稳定&#39;)我使用相同的jquery版本。 有人知道如何解决这个问题吗?
亨利
答案 0 :(得分:2)
正在进行一些故障排除。安装插件的未缩小版本,以便可以将错误消息跟踪为可读的内容。
错误消息包含,“检查元素idUserNameProvRegister
时出现异常,检查'远程'方法。”所以这应该缩小范围很长一段时间。
你安装了一个名为jQuery“Slim”的东西。我很确定这不是jQuery的完整版本。 (根据OP的评论,“苗条”不支持Ajax)
最后,data
中的remote
参数在这种情况下完全是多余的。默认情况下,remote
方法会发送要验证的字段的值,因此无需指定它。