2011-05-10 22 views
1

我正在用jQuery创建一个注册表单,并且我正在尝试添加一个函数,以便在完成时运行而没有错误。我试图弄清楚的是如何在所有剩下的工作完成后运行,所以我知道我的变量'hasErrors'是什么,而不是未定义的。这里是我的相关代码:如何在完成所有其他代码后运行此函数?

$('form.register .submit').click(validateRegister); 

function validateRegister(){ 
    var hasError = false; 

    //This is executed if something goes wrong. Basically I want my success() function to be run if this is never run, so at the end. 
    function returnErrors() { 
      $processing.hide(); 
      $this.parent().removeClass('processing'); 
      $endNote.slideUp(); 
      hasError = true; 
    } 

    if (hasErrors == false) { 
     success(); 
    } 
     return false; 
    } 

任何帮助,这是非常赞赏。谢谢!

+0

'returnErrors'在哪里调用?你可能不得不在里面叫“成功”。 – 2011-05-10 02:42:50

+0

当出现问题时调用returnErrors。如果returnErrors从未被调用,则应执行成功。 – Sawyer 2011-05-10 22:04:45

+0

编辑** 我最终做的是给我的ajax函数添加'async:false',迫使函数在读完其余部分之前完成。这样,hasError将等待被定义,并成功执行成功! (哈)。感谢大家的帮助! – Sawyer 2011-05-10 23:12:35

回答

0

我想你想要做的事,如:

function validate() { 
    var isValid = false; 

    // do some validation here 
    // if it passes, set isValid = true 

    if (isValid) { 
    success(); 
    return true; 
    } else { 
    error(); 
    return false; 
    } 
} 

jQuery的也有表单验证,你可能会感兴趣的插件,但它可能是矫枉过正根据您的需求是多么复杂。

http://docs.jquery.com/Plugins/validation

+0

感谢您的回应!不过,我认为你错过了这一点;)。我试图弄清楚的是,如何在完成代码的其余部分后检查我的isValid变量,以便成功执行。 – Sawyer 2011-05-10 22:13:53

相关问题