我遇到了Jquery,AJAX和字段验证问题。
验证工作正常,如果输入的一切正常,则重定向可以正常工作,但是$_POST
数组中不包含我的字段值。
以下是表单开始标记:
<form class="smart-form" id="register-form" method="post" action="#pages/target.php" novalidatee>
这里有JavaScript部分:
<script type="text/javascript">
// Load form valisation dependency
loadScript("js/plugin/jquery-form/jquery-form.min.js", runFormValidation);
// Registration validation script
function runFormValidation() {
//e.preventDefault();
var $checkoutForm = $('#register-form').validate({
// Rules for form validation
rules : {
name : {
required : true
},
vorname : {
required : true
},
passwort : {
required : true,
minlength: 8
},
passwort2 : {
required : true,
minlength: 8
},
email : {
required : true,
email : true
},
admin : {
required : true,
min: {
// min needs a parameter passed to it
param: 1
}
},
},
// Messages for form validation
messages : {
/* My Messagees*/ not mentionend
},
// Ajax form submition
success : function() {
form.submit();
$('#register-form').addClass('submited');
},
// Do not change code below
errorPlacement : function(error, element) {
error.insertAfter(element.parent());
}
});
};
答案 0 :(得分:0)
通过该插件的documentation for the validate method,我发现当您确实想要提交有效表单时,您应该使用articles
回调。
submitHandler(默认:原生表单提交):
在表单有效时回调处理实际提交。获取表单 作为唯一的论点。替换默认提交。正确的地方 在验证后通过Ajax提交表单。
正如@Sparky所说: 您通常不需要成功选项,除非您想在有效元素上使用错误标签,例如绿色复选标记或其他内容。
成功类型:字符串或函数()
如果指定,则显示错误标签以显示有效元素。如果给出了一个String,则会添加它 作为标签的一个类。如果给出了一个Function,则用它调用它 label(作为jQuery对象)和验证的输入(作为DOM元素)。 标签可用于添加“ok!”等文本。
因此,不应将submitHandler
位放在form.submit();
回调中,而应将其放在success
内。
所以你的代码应该是这样的:
submitHandler
顺便说一句,// Optional, read what this does
success: 'valid',
// This does the actual form submitting
submitHandler: function (form) {
form.submit();
},
不是AJAX,根据我的理解,它只是以传统的方式提交表单。