javascript inner/sub 函数 returns 问题

javascript inner/sub function returns issue

我的问题是,如果 validation_form 函数 return false 它停止执行并且不处理其他语句。 我需要一次执行所有语句。 我的验证表单代码如下。

jQuery("#submitsuggestevent").click(function (e) {
    e.preventDefault();
    var flag = true;

    var event_title = $('#title');
    var country = $('select[name="country"]');
    var state = $('select[name="state"]');
    var venue = $('select[name="venue"]');
    var category = $('select[name="category"]');

    flag = flag && validation_form(event_title);
    flag = flag && validation_form(country);
    flag = flag && validation_form(state);
    flag = flag && validation_form(venue);
    flag = flag && validation_form(category);

    if(flag){
       $('#frmevents').submit();
    }
});

function validation_form(ele) {
  if ($.trim(ele.val()) == '' || typeof(ele.val()) === 'undefined') {
       return false;
  }
  else {
       return true;
  }
}

这可能是问题所在

flag = flag && validation_form(event_title);
flag = flag && validation_form(country);
flag = flag && validation_form(state);
flag = flag && validation_form(venue);
flag = flag && validation_form(category);

javascript 运行时可能更智能,将上面的代码块转换为

flag=validation_form(event_title)&&validation_form(country)&&validation_form(state)&&validation_form(venue)&&validation_form(category);

如您所知,在 && 操作中,如果左侧评估为 false 右侧将被忽略(因为 false&&whatever 无论如何都是 false)。

解决方案是像

var val_title = validation_form(event_title);
var val_country = validation_form(country);

等最后

flag = val_title&& val_country&&....