javascript内部/子函数返回问题

标签 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;
  }
}

最佳答案

这可能是问题所在

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&&....

关于javascript内部/子函数返回问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28364292/

相关文章:

javascript - html输入框 "value"属性内的if语句

javascript - 如何使用jquery选择第n个 child

javascript - Angular js 模型值变化没有反射(reflect)在 ui 中

c++ - 调用 boolean 函数但出现错误 "no matching function to call"?

c++ - 是否使用 std::move 转储成员可接受的设计?

python - 使用 bottle framwork 在 tpl 中显示文本文件内容的问题

javascript - Sequelize associate 未从 index.js 执行

java - 如何检查 Java 中的 IF 语句中的方法是否返回 true 或 false?

java - 有什么捷径可以获取 boolean 数组的绝对值吗?

c - 在 else 语句中返回有好处/坏处吗?