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