jQuery验证引擎
我完全是jQuery和js的noob,我确信有一个比我想出的更优雅的解决方案——但这就是我迄今为止所拥有的,我被难住了 我有一个表单由于各种原因需要很长时间才能提交-我使用validationEngine来验证表单字段的内联,这非常有效。然后,我需要添加一个弹出div,告诉访问者请耐心等待应用程序执行请求的搜索的原因 我最初的解决方案非常有效,无论表单是否完全填写,访问者单击提交时都会显示弹出div,如果他们错过了字段验证,则一切正常。Engine会显示缺少的字段通知,而我的弹出div仍会显示,但显然,表格没有提交。此代码会发生这种情况:jQuery验证引擎,jquery,jquery-validation-engine,Jquery,Jquery Validation Engine,我完全是jQuery和js的noob,我确信有一个比我想出的更优雅的解决方案——但这就是我迄今为止所拥有的,我被难住了 我有一个表单由于各种原因需要很长时间才能提交-我使用validationEngine来验证表单字段的内联,这非常有效。然后,我需要添加一个弹出div,告诉访问者请耐心等待应用程序执行请求的搜索的原因 我最初的解决方案非常有效,无论表单是否完全填写,访问者单击提交时都会显示弹出div,如果他们错过了字段验证,则一切正常。Engine会显示缺少的字段通知,而我的弹出div仍会显示,
jQuery(document).ready(function(){
jQuery("#approvalForm").validationEngine('attach');
});
$(document).ready(function() {
$('#approvalForm').submit(function() {
$('#progress').show();
});
});
jQuery(document).ready(function(){
jQuery("#approvalForm").validationEngine('attach', {
onValidationComplete: function(form, status){
if (status == true) {
$('#approvalForm').submit(function() {
$('#progress').show();
});
}
}
});
});
因此,经过一些研究,我做了一些修改,产生了以下代码:
jQuery(document).ready(function(){
jQuery("#approvalForm").validationEngine('attach');
});
$(document).ready(function() {
$('#approvalForm').submit(function() {
$('#progress').show();
});
});
jQuery(document).ready(function(){
jQuery("#approvalForm").validationEngine('attach', {
onValidationComplete: function(form, status){
if (status == true) {
$('#approvalForm').submit(function() {
$('#progress').show();
});
}
}
});
});
现在一切都正常了,只是你必须点击提交按钮两次,当你点击时弹出div,但是表单没有提交
jQuery("#approvalForm").validationEngine('attach', {
onValidationComplete: function(form, status){
if (status == true) {
$('#progress').show();
$('#approvalForm').trigger('submit');
}else{
$('#progress').hide();
}
}
但我认为如果您想显示加载弹出窗口,您必须使用jQuery.ajax
它具有beforeSend功能,该功能将在浏览器发送请求之前运行。onValidationComplete停止表单提交,并允许您自己处理。在这种情况下,您只需在验证通过时显示加载弹出窗口。因此,您可以做的是挂接验证结果,如果验证通过,则显示加载弹出窗口。然后表单提交将正常激活
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#approvalForm").validationEngine('attach');
jQuery("#approvalForm").bind("jqv.form.result", function(event, errorFound) {
if(!errorFound) $('#progress').show();
})
});
</script>
jQuery(文档).ready(函数(){
jQuery(#approvalForm”).validationEngine('attach');
jQuery(“#approvalForm”).bind(“jqv.form.result”,函数(事件,errorFound){
如果(!errorFound)$(“#进度”).show();
})
});
您需要
$('#approvalForm').validationEngine('attach', {
onValidationComplete: function(form, status){
if (status) {
startProgressBar();
YouFunctionPreLoad();
return true;
//form.submit();
}
}
});
您是否碰巧在某个地方有当前版本的在线版本?另外-请注意,如果将
submit
处理程序附加到表单,则必须手动防止默认事件(提交表单),例如,在处理程序函数末尾返回false
。[我快速查看了插件的来源(我不知道),看起来(请不要引用我的话),他们会先传递状态,然后传递表单(在2.0版beta版中)?]当前版本在这里-但这是提交此版本后的表单。-如果有帮助的话,我可以提供页面的完整代码。