如何在Javascript中按顺序执行代码?

时间:2013-05-23 21:23:00

标签: javascript jquery

我正在尝试按顺序执行一些代码,但无法让它工作。我想做的是:

var validate = function($form) {
    $form
        .find('[data-required]')
        .each(function() {
            if(Util.isEmpty($(this).val())) {
                $(this).addClass('error');
                Util.Notify(Util.ERROR, $(this).data('required'));
                return false;
            }
            else {
                $(this).removeClass('error');
            }
        });
};

var submit = function($form) {
  $.post(actionUrl, $form.serialize(), function(response) {
    //...
  });
};

validate(); // must execute first with no False return
submit();   // must execute second and only if validate() not returns False

但是,即使validate()返回false,我的$ .post()也会被执行。如何在执行validate后强制执行submit()并且不返回false?我用Google搜索并根据人们发布的内容尝试了一些示例,但未成功。

1 个答案:

答案 0 :(得分:3)

如果条件正确,您可以在submit()内致电validate(),或者您可以这样做:

if(validate()) {
    submit(); 
}

请确保validate()在非假时返回内容,因此if评估为true ...

同时确保return位于正确的位置,就像现在一样,它正从.each()内的匿名函数返回,正如FabrícioMatté所提到的那样......