Immissione numero HTML5 – Mostra sempre 2 posizioni decimali

C’è un modo per formattare un valore di input[type='number'] per mostrare sempre 2 posizioni decimali?

Esempio: voglio vedere "0.00" invece di 0 .

Grazie

Non puoi davvero, ma a metà strada potresti essere:

  

Risolto seguendo i suggerimenti e aggiungendo un pezzo di jQuery per forzare il formato su interi parseFloat($(this).val()).toFixed(2)

L’uso dell’attributo step lo abiliterà . Non solo determina quanto deve pedalare, ma anche i numeri consentiti. Usare step="0.01" dovrebbe fare il trucco, ma questo può dipendere dal modo in cui il browser aderisce allo standard.

  

Le soluzioni che utilizzano input="number" step="0.01" funzionano perfettamente per me in Chrome, tuttavia non funzionano con alcuni browser, in particolare Frontmotion Firefox 35 nel mio caso .. che devo supportare.

La mia soluzione era di jQuery con il plugin jQuery Mask di Igor Escobar, come segue:

    

Questo funziona bene, ovviamente si dovrebbe verificare il valore inviato in seguito 🙂 NOTA, se non dovessi fare questo per la compatibilità con il browser, userei la risposta di cui sopra da @Rich Bradshaw.

Questa è la risposta corretta:

  

Dai un’occhiata a questo :

   

Ciò funziona per applicare un massimo di 2 posizioni decimali senza arrotondare automaticamente a 2 posizioni se l’utente non ha finito di digitare.

 function naturalRound(e) { let dec = e.target.value.indexOf(".") let tooLong = e.target.value.length > dec + 3 let invalidNum = isNaN(parseFloat(e.target.value)) if ((dec >= 0 && tooLong) || invalidNum) { e.target.value = e.target.value.slice(0, -1) } } 
 import { Component, Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'replace' }) export class ReplacePipe implements PipeTransform { transform(value: any): any { value = String(value).toString(); var afterPoint = ''; var plus = ',00'; if (value.length >= 4) { if (value.indexOf('.') > 0) { afterPoint = value.substring(value.indexOf('.'), value.length); var te = afterPoint.substring(0, 3); if (te.length == 2) { te = te + '0'; } } if (value.indexOf('.') > 0) { if (value.indexOf('-') == 0) { value = parseInt(value); if (value == 0) { value = '-' + value + te; value = value.toString(); } else { value = value + te; value = value.toString(); } } else { value = parseInt(value); value = value + te; value = value.toString(); } } else { value = value.toString() + plus; } var lastTwo = value.substring(value.length - 2); var otherNumbers = value.substring(0, value.length - 3); if (otherNumbers != '') lastTwo = ',' + lastTwo; let newValue = otherNumbers.replace(/\B(?=(\d{3})+(?!\d))/g, ".") + lastTwo; parseFloat(newValue); return `${newValue}`; } } }