我在我的代码中遇到了这个挑战,我想改变这个:
function validateLoanAmount(){
var loan_amount = $('[name=loan_amount]');
if(loan_amount.val() == ''){
showError(loan_amount, 'Field can\'t be empty');
return false;
}
if(loan_amount.val() <= 0){
showError(loan_amount, 'Value can\'t equal 0 or less');
return false;
}
}
进入这个:
function validateLoanTerm(){
var loan_term = $('[name=loan_term]');
isEmpty(loan_term);
isEqualZeroOrLess(loan_term);
}
function isEmpty(element){
if(element.val() == ''){
showError(element, 'Field can\'t be empty');
return false;
}
}
function isEqualZeroOrLess(element){
if(element.val() <= 0){
showError(element, 'Value can\'t equal 0 or less');
return false;
}
}
我尝试将return
放在isEmpty()
和isEqualToZeroOrLess()
之前,但只有第一个功能已解决。它看起来像一个简单的函数来缩短(因为我有许多类似的输入来验证,我想保持干燥),但看起来它比我最初的想法更复杂。有什么想法吗?
答案 0 :(得分:2)
将来电与&&
:
function validateLoanTerm(){
var loan_term = $('[name=loan_term]');
return isEmpty(loan_term) && isEqualZeroOrLess(loan_term);
}
但为了实现这一点,当没有错误时,函数需要返回true
。
function isEmpty(element){
if(element.val() == ''){
showError(element, 'Field can\'t be empty');
return false;
}
return true;
}
function isEqualZeroOrLess(element){
if(element.val() <= 0){
showError(element, 'Value can\'t equal 0 or less');
return false;
}
return true;
}