如何使用Jquery验证引擎实现onSuccess()?

时间:2012-07-31 04:32:08

标签: jquery jquery-plugins validation

我正在使用Jquery验证引擎http://posabsolute.github.com/jQuery-Validation-Engine/,我只想在找到有效的表单后显示隐藏的加载gif

  • 用户提交表单

  • 如果表格有效: $( '#lulus加载-DIV')显示();

我试过这个,但没有运气:

我似乎没有运气实现onSuccess()回调函数。

我不怀疑它在游泳方面有效,遗憾的是我对正确的语法一无所知,而且对于文档没有运气:/

目前我有:

jQuery(document).ready(function(){
        jQuery("#model-form").validationEngine({

           onSuccess: function(){
              $('#lulus-loading-div').show();
           });
        });

 });

这会在第一次单个字段验证时调用onSuccess(),然后如果您尝试提交表单不完整,则会提交而不会标记错误。

非常感谢任何帮助或建议:)

如果您需要更多详情,请告诉我。

3 个答案:

答案 0 :(得分:1)

验证引擎没有任何(工作)来完成此类任务。

假设您的表单使用了页面重新加载 - 但也应该使用基于ajax的no-reload提交。

有一段时间我需要类似的东西,我写了一个快速的黑客攻击,就是这样。

我使用的是2.5.2版本

查找此代码(约240-250行)

form.trigger("jqv.form.result", [errorFound]);

在添加此代码之前:

if (options.jpAfterSuccessValidation && !errorFound) {
    options.jpAfterSuccessValidation();
}

在最底部,默认情况下,追加(添加后)“fadeDuration”

fadeDuration: 0.3,
jpAfterSuccessValidation: false //launches callback, if all fields validate

并像这样使用它:

jQuery("#model-form").validationEngine({
    jpAfterSuccessValidation: function(){
    $('#lulus-loading-div').show(); //this will pull-up your info dialog
    }
});

你的“lulus-loading-div”将保持可见状态,直到页面保持形式重新加载(并且表单被提交)。

答案 1 :(得分:1)

onSuccess错误也在他们的Git上报告。以下是从https://github.com/posabsolute/jQuery-Validation-Engine/issues/554获取的snnipet的工作 :

$("#my_form").validationEngine('attach', { 
    onValidationComplete: function(form, status){ // when validate is on and the form scan is completed
        if (status == true) { // equiv to success everythings is OK
            // we disable the default from action to make our own action like alert or other function
            form.on('submit', function(e) {
                e.preventDefault();
            });

            // your function or your action

            alert("Successful! Now submitting");
            return true;
        } else {
            // we disable the default from action to make our own action like alert or other function
            form.on('submit', function(e) {
                e.preventDefault();
            });

            // your function or your action

            alert("Errors! Stopping Here");
        }
    },
    promptPosition : "topLeft", 
    scroll: false
});

希望,它有助于某人!!!

答案 2 :(得分:0)

“快速”清洁解决方案是这样做的:

$("#new_user").validationEngine("attach", {
  promptPosition: "topLeft",
  onFieldSuccess: function() {
    alert("rakoto");
  }
});

希望有所帮助。 ;)