javascript inner / sub函数返回问题

时间:2015-02-06 11:02:27

标签: javascript boolean return

我的问题是,如果validation_form函数返回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;
  }
}

1 个答案:

答案 0 :(得分:1)

这可能是问题

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&&whatever无论如何都是假的。)

解决方案是使用

之类的东西
var val_title = validation_form(event_title);
var val_country = validation_form(country);

等等,最后

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