我的问题是,如果 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/