2014-10-16 124 views
-1

我正在使用jquery验证插件来验证我的表单。下面的功能,显示检测到错误的每个字段下的错误。jquery函数if语句

errorPlacement : function(error, element) { 
      error.insertAfter(element.parent()); 

     } 
    }); 

如何评估此功能是否已被使用“屏幕上显示错误”?

我想要的是评估表单是否已经过验证,因此我可以执行其他逻辑,例如禁用提交按钮或将按钮文本更改为“请稍等”。

我不知道我该如何去做。

任何帮助,将不胜感激。 谢谢

+1

怎么样做一个演示? – Manwal 2014-10-21 04:41:20

+0

请参阅:http://stackoverflow.com/q/21953694/594235 – Sparky 2014-10-27 00:49:46

+0

我已经回答了关于这个插件的一千个问题,但我从来没有见过任何人需要告诉如果有另一种方法时曾经产生过错误这将可靠地告诉你何时该表格有效。你也没有清楚地解释为什么你想看看这个特定的回调是否已经被解雇。如果我们更了解您的具体要求,我们可能会提出更好的方法。到底什么时候你想让按钮被启用和禁用?到底什么时候你想改变按钮的文字?等等? – Sparky 2014-10-27 23:35:05

回答

1

你可以使用submitHandler,因为它是一个回调处理实际当表单有效提交。所以,

$("#your-form").validate({ 
    ..... 
    submitHandler: function(){ 
     //form is valid 
     //do some logic 
     $('#your_submit_btn_id').attr('disabled','disabled'); 
    }, 
    ..... 
}); 
0

您可以随时处理使用此代码提交事件:

$("#myform").validate({ 
    submitHandler: function(form) { 
    // some other code 
    // maybe disabling submit button // $('#submit').attr('disabled', true); 
    // then: 
    $(form).submit(); 
    } 
}); 

submitHandler只会被调用一次的形式得到确认&没有错误。

文档可以在这里找到:http://jqueryvalidation.org/documentation/

3

你为什么不只是设置一个布尔变量,指示方法被调用:

hasError: false, 
errorPlacement : function(error, element) { 
    error.insertAfter(element.parent()); 
    this.hasError = true 
} 

然后你可以检查hasError每当你需要。请务必将hasError存储在对象上,以免污染全局名称空间。

-1
$('#myform').on('submit', function(){ 
    if($(this).valid()) //this returns true if the form is valid, and false if there is some validation error 
    { 
     //submit the form 
    } 
    else 
    { 
     //disable the submit button or change text as desired 
     return false; //to avoid form submission 
    } 

});