Returning from one function doesn't magically make the one that called it end, much less use a specific return value.
If you want to do that, you have to set a variable that the outer function will use:
checkipAddress = function(value){
var rv = true; // <=== Default return value
var array = value.split('.');
$.each(array, function(index,val){
if(parseInt(val)>255)
return rv = false; // <=== Assigns false to `rv` and returns it
});
return rv; // <=== Use rv here
}
Side note: Your function will happily allow IP strings like "0.-234343.-1.0" and "1foo.2foo.3foo.4foo". You might consider:
checkipAddress = function(value){
var rv = true; // <=== Default return value
var array = value.split('.');
$.each(array, function(index,str){
str = $.trim(str);
var val = +str;
if(!str || val < 0 || val > 255)
return rv = false; // <=== Assigns false to `rv` and returns it
});
return rv; // <=== Use rv here
}
That's a bit better, but it also doesn't check whether there are exactly four parts to the IP, and allows values like "1.1e2.3.4" (exponent notation). And all of this is, of course, specific to IPv4, whereas we're entering an IPv6 world...
Sticking with IPv4, though, if your goal is to ensure that it's a four-part IPv4 address in normal form, I'd plump for regex:
checkipAddress = function(value){
var rv;
var match = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(value);
var n, part;
if (match) {
rv = true;
for (n = 1; rv && n < 5; ++n) {
part = +match[n]; // We know it's not blank from the regex
if (part > 255) { // We know it's not negative or fractional from the regex
rv = false;
}
}
} else {
rv = false;
}
return rv;
}
Or on modern browsers (or using a decent Array#every shim):
checkipAddress = function(value){
var match = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(value);
rv = !match ? false : Array.prototype.slice.call(match, 1).every(function(entry) {
// We know it's not blank, negative, or fractional from the regex
return +entry <= 255;
});
return rv;
}
return false;within the$.eachstatement, you're returning from just that function and notcheckipAddress.