//这是隐藏所有错误报告的隐藏功能
function hide_errors(){
$(".error_orient").hide();
$(".error_short").hide();
$(".error_master").hide();
}
//错误检查功能
function error_check(data,_class){
if(data.val()=="" || data.val()==0){
data.parent().parent().addClass('has-error');
$(_class).show();
return true;
}
else
data.parent().parent().removeClass('has-error');
$(_class).hide();
return false;
}
//在检查空/重复
后记录添加新记录 $("#btnSave").click(function(){
event.preventDefault();
_error_check = false;
var orientation_name = $('#orientation_name');
var short_code = $('#short_code');
var master_select = $('#ori_master');
hide_errors();
_error_check = error_check(orientation_name,'.error_orient');
_error_check = error_check(short_code,'.error_short');
_error_check = error_check(master_select,'.error_master');
//Add New Record
if(_error_check==false){
$.ajax({
----
----
});
//end Ajax
}
})
//End function
当第3个函数同时返回true值时运行ajax .. 但是我在运行ajax时需要所有函数都是真的.. 如何解决这个问题?
答案 0 :(得分:1)
改变这三行:
_error_check = error_check(orientation_name,'.error_orient');
_error_check = _error_check && error_check(short_code,'.error_short');
_error_check = _error_check && error_check(master_select,'.error_master');
并将if
表达式更改为
if(_error_check){
将&&
与false
值一起使用,返回false
。因此,只有当所有这些都返回true
时,您的AJAX才会起作用。
答案 1 :(得分:1)
您可以使用&=
将值组合在一起:
_error_check = true;
_error_check &= !error_check(orientation_name,'.error_orient');
_error_check &= !error_check(short_code,'.error_short');
_error_check &= !error_check(master_select,'.error_master');
if (_error_check == true)
使用&&或者& =表示'这些必须全部通过',因此'error_check'的结果必须为true == pass。因为它不是(它是真的==失败),你需要反转结果,或改变结果,以便它。
更改名称可以使其更清晰,例如
function haserror(data, cls) {
// return true if it has an error
或
function passescheck(data, cls) {
// return true if it passes
您可以使用其中之一。以上使用&=
来说“所有3个都已通过”,但你可以同样说
“任何1失败”
var has_failed = false;
has_failed |= haserror(orientation_name,'.error_orient');
has_failed |= haserror(short_code,'.error_short');
has_failed |= haserror(master_select,'.error_master');
if (has_failed == false) // then has passed
或“所有3人都过去了”
var has_passed = true;
has_passed &= passescheck(orientation_name,'.error_orient');
has_passed &= passescheck(short_code,'.error_short');
has_passed &= passescheck(master_select,'.error_master');
if (has_passed == true) // then has passed