Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery验证引擎_Jquery_Jquery Validation Engine - Fatal编程技术网

jQuery验证引擎

jQuery验证引擎,jquery,jquery-validation-engine,Jquery,Jquery Validation Engine,我完全是jQuery和js的noob,我确信有一个比我想出的更优雅的解决方案——但这就是我迄今为止所拥有的,我被难住了 我有一个表单由于各种原因需要很长时间才能提交-我使用validationEngine来验证表单字段的内联,这非常有效。然后,我需要添加一个弹出div,告诉访问者请耐心等待应用程序执行请求的搜索的原因 我最初的解决方案非常有效,无论表单是否完全填写,访问者单击提交时都会显示弹出div,如果他们错过了字段验证,则一切正常。Engine会显示缺少的字段通知,而我的弹出div仍会显示,

我完全是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版中)?]当前版本在这里-但这是提交此版本后的表单。-如果有帮助的话,我可以提供页面的完整代码。