2014-10-12 63 views
-3

如果金額正確,那麼如果金額低於150歐元,則該金額出現在對話框中;如果金額低於150歐元則出現10%折扣;如果金額高於250歐元則出現20%。如何在JS中編寫計算?

<form name="monForm" action="#" method="post"> 
    Montant de la facture : <input type="text" name="montant" id="montant" /></br> 
    <input type="button" onclick="paiement(document.monForm.montant.value)" name="valider" id="valider" value="Valider" /> 
</form> 

<script> 
function paiement(montant) 
{ 
    if (montant == "" || isNaN(montant)) //Pour s'assurer que le champ est renseigné et est numérique 
    { 
     alert("Montant de la facture en erreur"); 
     return false; 
    } 

    montant = parseInt (montant); 
    if (isNaN(montant) == false && montant < 150) 
    { 
     var mtn = document.getElementById("montant"); 
     alert('Le montant de la facture est : "'+mtn.value+"'"); 
    } 

    if (isNaN(montant) == false && montant > 150) 
    { 
     // calcul de la remise 
     alert('Vous bénéficiez d une remise de : "'+remise.value+"'"); 
    } 

    var j = 20; 
    if (isNaN(montant) == false && montant > 250) 
    { 

    } 
} 
</script> 

所有我想要的就是給:

如果量低於250歐元的折扣爲20% ,是不到150歐元的折扣爲10%

+0

你的問題是?我猜你需要使用「公式」,在這種情況下,就像'var remise = montant * 0.9;'一樣。你有沒有用過其他編程語言中的一種?因爲'remise'是一個簡單的變量,所以你不需要把它稱爲'remise.value'。此外,你重複檢查'isNaN(montant)'是多餘的。您不需要從DOM中檢索'mtn',因爲您已經將'montant'傳遞給函數。最後,你的問題陳述不正確。您在最後給出的定義與您在開始時給出的定義不同。 – 2014-10-12 11:58:30

回答

0

// Lorsque le DOM sera prêt: 
 
// - L'event 'load' (paramètre 1) sera lancé 
 
// - La fonction (paramètre 2) sera alors exécutée 
 
window.addEventListener('load', function() { 
 
    // Lorsque l'utilisateur cliquera sur le bouton valider: 
 
    // - L'event 'click' (paramètre 1) sera lancé 
 
    // - La fonction (paramètre 2) sera alors exécutée 
 
    document.getElementById('valider').addEventListener('click', function() { 
 
    // Ciblage de l'input contenant le montant dans le DOM 
 
    var inputElement = document.getElementById('montant'); 
 
    // Récupération de la valeur contenue dans l'input 
 
    var stringValue = inputElement.value; 
 
    // Transtypage de cette valeur textuelle en valeur numérique 
 
    var floatValue = parseFloat(stringValue); 
 
    // Si le transtypage a échoué ou le montant est négatif 
 
    if (isNaN(floatValue) || floatValue < 0) { 
 
     alert('Montant de la facture incorrect'); 
 
     return; 
 
    } 
 
    // Déclaration de la remise 
 
    var remise; 
 
    // Si le montant de la facture est dans l'interval [0;150[ 
 
    if (floatValue < 150) { 
 
     remise = 0; // pourcent 
 
    } 
 
    // Si le montant de la facture est dans l'interval [150;250[ 
 
    else if (floatValue < 250) { 
 
     remise = 10; // pourcent 
 
    } 
 
    // Si le montant de la facture est dans l'interval [250;+inf[ 
 
    else { 
 
     remise = 20; // pourcent 
 
    } 
 
    // Calcul du montant final à 2 chiffres significatifs 
 
    var finalValue = (floatValue - (floatValue * (remise/100))).toFixed(2); 
 
    // Affichage du résultat final 
 
    alert('Vous bénéficiez d\'une remise de '+remise+'%\nSoit une facture totale de '+finalValue); 
 
    }); 
 
});
<!doctype html> 
 
<html> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    </head> 
 
    <body> 
 
    Montant de la facture : 
 
    <input type="text" id="montant"/><br/> 
 
    <input type="button" id="valider" value="Valider"/> 
 
    </body> 
 
</html>