我花了好几个小时,我不知道为什么这个
jquery validate()不起作用.我终于将它分解为最小值,但仍然无法正常工作.这是实际代码:
- <!DOCTYPE html>
- <html>
- <head>
- <script type="text/javascript" src="jquery-1.8.2.min.js"></script>
- <script type="text/javascript" src="jquery.validate.min.js"></script>
- <script>
- $(document).on("click","#submit",function() {
- $("#form").validate({
- rules: {
- input: { required: true}
- },messages: {
- input: { required: "required" }
- },ignore: "",errorClass: 'fieldError',onkeyup: false,onblur: false,errorElement:'label',submitHandler: function() {
- alert("alert");
- }
- });
- return false;
- });
- </script>
- </head>
- <body>
- <form id="form">
- <input type="text" value="" name="input" id="input" />
- </form>
- <a href="#" id="submit">submit</a>
- </body>
- </html>
我错过了一些明显的东西吗?我没有错误,点击“提交”时没有任何反应.
更新:我已将“click”事件之外的validate()移动到文档“ready”事件中,现在它在文档加载时触发,在控制台中输出消息“没有选中,无法验证,什么都不返回”
这不是我希望它显然工作的方式,所以我如何将它附加到click事件?
更新2:感谢@NXT我终于进行了验证运行,但是“submitHandler”仍然无法运行,我需要使用它来进行Ajax调用,因为必须在没有页面重新加载的情况下提交表单.
解决方法
您是否故意将提交按钮放在表单之外?我修改了它,在点击时提交表单.
它现在有效 – 出现验证消息,以及警报消息(当您提交包含某些内容的表单时).要么使用下面的代码部分,要么在线尝试 – http://jsfiddle.net/Vcmfs/
它现在有效 – 出现验证消息,以及警报消息(当您提交包含某些内容的表单时).要么使用下面的代码部分,要么在线尝试 – http://jsfiddle.net/Vcmfs/
头:
- <script>
- $(function(){
- $("#form").validate({
- rules: {
- input: { required: true}
- },submitHandler: function() {
- alert("alert");
- }
- });
- $("#submit").click(function(){
- $("#form").submit();
- return false;
- });
- });
- </script>
身体:
- <form id="form">
- <input type="text" value="" name="input" id="input" />
- </form>
- <a href="#" id="submit">submit</a>