我AJAXified评论系统,所以当点击Post Comment
按钮时,ajax调用而不是原始表单提交。 感谢我的另一个问题。 如果绑定对象被ajax刷新,则提交不起作用,即使提交按钮被刷新,这也可以正常工作。
现在我想在提交之前validation表单,但我无法使其工作。 即使表单有效,也不会调用submitHandler选项。 alert( "Valid: " + commentform.valid() );
触发并且在执行原始提交之后不是ajax。
提交表单的javascript看起来像
jQuery(document).ready(function($){ $('#content_container').on("submit","#commentform",function(){ var commentform=$('#commentform'); // find the comment form console.log('Post Comment button was clicked'); var validator = $("#commentform").validate({ onsubmit: false, rules: { author: "required", email: { required: true, email: true }, url: { url: true }, comment: "required" }, messages: { author: "Please enter your name", email: { required: "Please enter an email address", email: "Please enter a valid email address" }, url: "Please enter a valid URL eg https://www.mysite.com", comment: "Please include your comment" } , submitHandler: function(form) { // The jQuery.validate plugin will invoke the submit handler if the validation has passed. alert( "Valid (submitHandler): " + form.valid() ); console.log("before exit"); return; console.log("after exit"); }, invalidHandler: function(event, validator) { alert( "Valid (invalidHandler): " + form.valid() ); console.log("before exit"); return; console.log("after exit"); } }); alert( "Valid: " + commentform.valid() ); return; $.ajax({ type: 'post', url: formurl, data: formdata,
有人建议如何在validation后进行ajax调用以提交表单吗?
在这种情况下,您可以尝试这样做:
jQuery(document).ready(function($){ $('#content_container').on("submit","#commentform",function(){ var commentform=$('#commentform'); // find the comment form console.log('Post Comment button was clicked'); var validator = $("#commentform").validate({ onsubmit: false, rules: { author: "required", email: { required: true, email: true }, url: { url: true }, comment: "required" }, messages: { author: "Please enter your name", email: { required: "Please enter an email address", email: "Please enter a valid email address" }, url: "Please enter a valid URL eg https://www.mysite.com", comment: "Please include your comment" } }); if (commentform.valid()){ //Your ajax to post the form $.ajax({ type: 'post', url: formurl, data: formdata, } else{ //form is not valid. } return false;// stop the form submission and refresh the page. }); });
如果手动validation表单以发送ajax请求,则不需要submitHandler
和invalidHandler
。
这有效,但我建议您考虑一下当前的设计,看看是否可以避免使用新表单删除旧表单,并且每次都必须重新绑定.validate()
。
以上就是jQuery教程分享尽管submitHandler有效,但它不会被触发相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/jquerytutorial/558447.html