Why can't I use toFixed on an HTML input object's value?

前端 未结 2 804
无人共我
无人共我 2021-01-19 04:18

I have an HTML input element and I\'m trying to force a single decimal place into the input after the user changes the value. So, let\'s say the user enters \"4\", I run th

相关标签:
2条回答
  • 2021-01-19 05:06

    convert to a Number first,

    this.value = Number(this.value).toFixed(1);
    

    this.value is a String, and a string does not have the toFixed method.

    0 讨论(0)
  • 2021-01-19 05:10

    this.value is a String when you get it from an input element. You need to cast it to a number before you can use a number's methods on it:

    this.value = Number(this.value).toFixed(1);
    

    Alternatively you can use the unary + operator to cast the string to a number:

    this.value (+this.value).toFixed(1);
    

    If you need to remove string suffixes, then you could use parseFloat:

    this.value = parseFloat(this.value).toFixed(1);
    

    However, it's worth noting that parseFloat does not handle hexadecimal formats while casting to Number does:

    this.value = +'0xF'; //15
    this.value = parseFloat('0xF'); //0
    
    0 讨论(0)
提交回复
热议问题