我的问题是,如果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;
}
}
答案 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&&....