【发布时间】:2013-10-15 01:21:28
【问题描述】:
我AJAXified commenting system 所以当点击Post Comment 按钮时,会进行ajax 调用而不是原始表单提交。感谢我的另一个问题.submit doesn't work if the bind object was refreshed by ajax,即使刷新提交按钮,它现在也可以工作。
现在我想在提交之前验证表单,但我无法让它工作。即使表单有效,也不会调用 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 e.g. http://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,
有人可以建议如何在验证后进行 ajax 调用以提交表单吗?
【问题讨论】:
-
摆脱你的
.on('submit')处理程序。由于插件使用其submitHandler函数捕获并处理提交事件,因此不需要它。 -
@Sparky:完美,但如果我通过 ajax 刷新页面,单击“发表评论”按钮不会触发验证,而是原始提交。我需要以某种方式保留指向
$("#commentform").validate({表单的链接,即使该对象是通过 ajax 刷新的。这就是我在另一个问题stackoverflow.com/questions/19343052/… 中提到的内容 -
你的评论对我来说没有意义。如果您使用的是 Ajax,则不会有页面刷新。
-
好的,如果您阅读其他问题可能会更有意义。我有一个页面,我在 ajax 调用上刷新内容(包括提交表单)。当我摆脱整行
$('#content_container').on("submit","#commentform",function(){时,验证在第一次加载页面时起作用。然后我为表单所在的#content_container加载新的html,然后如果我单击提交表单按钮,则不会触发验证。 -
请注意您使用的标签及其描述。 validator 标签与这个问题无关。它适用于“代码验证工具”。已编辑。谢谢。
标签: forms jquery jquery-validate