Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

234
Views
Can anyone tell me why I get a error when i try to call this function?
<!doctype html>
<html>
<script>
function isNumber(value) {
    return typeof (value) != "boolean" && !isNaN(value) && value.length > 0;
}

function minMaxDefrost(value, min, max) {

    if (value.length == 0 || value == "-") return value;
    if (!isNumber(value)) return value.substring(0, value.length - 1);
    
console.log("minMaxDefrost called ")
    if (parseFloat(value) < min){
        return min;
        }
    else if (parseFloat(value) > max){
        return max;
        }
    else {
        return Math.floor(value);
    }
}


minMaxDefrost(4, 0, 12);

</script>
</html>
  • I use this function in a html keyup function and it works fine but when i try to call it by itself at the start of the code i get the error message Uncaught TypeError: value.substring is not a function
  • also not when i call this function from the keyup i use "this.value = minMaxDefrost(this.value, -80, 150, 0)
  • im assuming the error has got to do with the this.value but i dont know how to fix it
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

isNumber(4) evaluates to false, so you're trying to call a substring method on 4 but that doesn't exist. Use typeof value === 'number' instead to test if something is a number. Or better yet, use typeof value === 'string' before treating it like it's definitely a string.

about 4 years ago · Juan Pablo Isaza Report

0

isNumber doesn't exactly do its job as Mark Hanna suggests.. a better isNumber would be something like

function isNumber(num){
  let num1=num-0, num2=num-1
  return num2!=num1 && !!(num2||num1) && typeof(num)!="object"
  //Infinity would fail the test num2!=num1
  //Normal non-numbers would fail !!(num2||num1)
  //null would fail typeof(null)!="object"
  //However, 0, and even "0" will pass this test
}

Here is it returned in the code you gave us

function isNumber(num){
  let num1=num-0, num2=num-1
  return num2!=num1 && !!(num2||num1) && typeof(num)!="object"
  //Infinity would fail the test num2!=num1
  //Normal non-numbers would fail !!(num2||num1)
  //null would fail typeof(null)!="object"
  //However, 0, and even "0" will pass this test
}

function minMaxDefrost(value, min, max) {

    if (value.length == 0 || value == "-") return value;
    if (!isNumber(value)) return value.substring(0, value.length - 1);
    
console.log("minMaxDefrost called ")
    if (parseFloat(value) < min){
        return min;
        }
    else if (parseFloat(value) > max){
        return max;
        }
    else {
        return Math.floor(value);
    }
}


minMaxDefrost(4, 0, 12);

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!