2017-04-20 2 views
0

J'essaie d'afficher la valeur d'un texte de type d'entrée pour Upfront_fee et Additional_fee sur une valeur Monitory avec 2 décimales. Ni à.Fixed ou parseFloat semble fonctionner ici.Définir le format de getElementbyid ("Upfront_fee"). Value à une valeur monitoire décimale (10500.00)

<html> 
    <head> 
    <script type="text/javascript"> 
     function check() { 
     parseFloat(document.getElementById("Upfront_fee").value = 10500); 
     parseFloat(document.getElementById("Additional_fee").value = (document.getElementById("Practice_Qty").value-1)*1266); 
     } 
     function setDecimal() { 
     this.value = parseFloat(this.value).toFixed(2); 
     } 
    </script> 
    </head> 

    <body> 
    <table> 
    <th colspan="4">Quotation Values</th> 
    <tr><td><label>Practice Numbers:</label></td><td colspan="3"><input type="number" name="Practice_Qty" id="Practice_Qty" min="1" onChange="check();"></td></tr> 
    <tr><td><label>Service Providers:</label></td><td colspan="3"><input type="number" name="Providers_Qty" id="Providers_Qty" min="1" onChange="check();"></td></tr> 
    </table> 
    <hr></hr> 
    <table> 
    <tr><th colspan="2">Upfront Pricing</th></tr> 
    <tr><td><label>Upfront fee</label></td><td><input type="Number" name="Upfront_fee" id="Upfront_fee" min="0.00" max="99999.99"></td></tr> 
    <tr><td><label>Additional Directory upfront fee</label></td><td><input type="text" name="Additional_fee" id="Additional_fee"></td></tr> 
    </table> 
    </body> 
    </html> 
+0

Vous n'êtes pas appeler 'setDecimal' partout ... – CBroe

+0

ne fonctionnent pas de valeur dans ma zone de texte affiche toujours comme 10500 –

+0

SetDecimal était une tentative d'appliquer toFixed (2) ou dans un parseFloat séparé fonction autre que ce que @ zer00ne suggère qui ne fonctionne pas. –

Répondre

1

vous êtes juste attribuer la valeur 10500 dans la fonction check. Au lieu de cela, vous devez affecter la valeur après l'avoir analysée, puis la corriger en 2 decimal places comme ceci.

function check(){ 
 
    document.getElementById('box').value = parseFloat(document.getElementById('box').value).toFixed(2) 
 
}
<input id="box" type="number" name="Practice_Qty" id="Practice_Qty" min="1" onChange="check();">

Note: Exécutez l'extrait, modifiez la valeur dans la zone de texte et voir le résultat

Tout comme vous faites dans setDecimal fonction, mais vous utilisez this qui ne pointe pas à votre élément DOM je suppose. Utilisez comme ça

document.getElementById('your input id').value = parseFloat('your value').toFixed(2)