I am building a Js function with Jquery checking if certain inputs are empty or not for validation. Here's the function that checks if the inputs are empty or not:
function isValid(elements){
var validation = false
elements.each(function() {
if ($( this ).val().length > 0){
validation = true
}
else {
validation
}
});
validation
}
however whatever I do my function returns undefined and never the boolean value that is supposed to be contained in the validation variable ?
What should I do for my function to return true or false ?
Your function isValid()
is returning undefined because this is the expected behaviour in JavaScript: undefined is the “default” returned value if a function does not specify one returned value, and your function isValid()
doesn't have any return.
Check this answer .
You can return false if at least one element is empty, otherwise return true.
function isValid(elements){
var validation = true;
elements.each(function() {
if ($( this ).val().trim().length === 0){
validation = false;
}
});
return validation;
}
You can do your code like below by using Array#some
,
function isValid(elements) {
return !Array.from(elements).some(function(itm){ itm.value.trim().length == 0 });
}
You are not at all returning anything from the function, that means as a default returning value undefined
will be returned.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.