validationEngine不使用onValidationComplete提交表单

时间:2012-07-13 13:28:26

标签: jquery jquery-validation-engine

$(document).ready(function(){
    jQuery("#bbSignup").validationEngine('attach', {
  onValidationComplete: function(form, status){
      if ( status == "true" ) {
$("#bbSignup").submit();
    $("#bbSignup").hide();
    $("#bbRegister").insertAfter("Form Submitted");
      } else {

      }
  }  
});
   });

如果我填写所有表格并点击提交,则没有任何反应。即使多次按下它也没有任何作用。有什么想法吗?

--- --- EDIT

我把它更改为:

jQuery("#bbSignup").validationEngine('attach', {
onValidationComplete: function(form, status){
if ( status == "true" ) {
alert(" The status is " + status + " and will submit ");
} else {
alert(" The status is " + status + " and will not submit ");
}
}  
});

如果没有填写任何内容,则其他警报会正确触发。如果所有内容都已填写,则警报显示“状态为真,不会提交”。所以它就像if status == true永远不会被调用..怪异

4 个答案:

答案 0 :(得分:2)

如果为onValidationComplete分配了一个函数,则会执行而不是提交的表单,因此您的描述正是jQuery-Validation-Engine的目的。

直到jQuery-Validation-Engine版本2.6.4这是唯一的行为,从这个版本开始,你可以在onValidationComplete中返回true,告诉验证引擎继续提交表单。如果函数没有返回值,则默认行为仍然是停止提交。

有关处理返回值的更改,请参阅https://github.com/posabsolute/jQuery-Validation-Engine/pull/442

答案 1 :(得分:1)

这只是一个猜测,但你正在询问status,好像它有一个字符串。但是,由于您正在测试字符串"true""false",因此它似乎更有可能包含布尔值。

尝试简单

if (status) { //test it against the boolean true, not string "true"

答案 2 :(得分:0)

试试这个......

<script>
  jQuery(document).ready( function() {
    jQuery("#formID").validationEngine('attach',{
     onValidationComplete: function(form, status){
      if (status == true){
       YourFunctionReload();
       // here :)
       return true;
      }}});
    });
</script>

答案 3 :(得分:0)

请试试这个,希望它对你有用..

$('#formID').validationEngine('attach',{
    onValidationComplete: function(form, status){

        if (status == true){
            $("#formID").submit();
            return true;
        }

    }
});