2016-05-30 5 views
1

注文された10個の「ウィジェット」ごとに10-40%の割引を計算する注文フォームをJSにまとめなければなりません。フォーム上のすべてのフィールド(名前、電話番号、注文金額など)は検証されますが、送信をクリックすると「入力を修正してください。」というメッセージが表示されます。私が逃しているものがわからない!割引を計算するために作成した関数には何らかのエラーがあるはずです。たくさんのコードがあるので、問題の最後の2つの関数しか含まれていません。すべてのアイデアはすばらしいでしょう...ありがとう!それはあなたに固有であり、問​​題は単にエラーをコーディングして、あなたが本当に何をやっている知っていないので、あなたの質問は、誰を助けにはなりません答えるJavascript注文フォーム - 割引を計算する(エラーメッセージが表示される)

関数calcDiscount(数量){

if (quantity < 10) 
     return 0; 

    if (quantity < 20) 
     return 0.1; 

    if (quantity < 30) 
     return 0.2; 

    if (quantity < 40) 
     return 0.3; 

    if (quantity >= 40) 
     return 0.4; 

} // end function calcDiscount(quantity) 

    function calcOrder() { 
    if (validateFirstName() && validateLastName() && validatePhone() && validateQuantity() && calcDiscount(quantity)) { 

     const TAXRATE = 0.085; 
     var userName = document.getElementById("username").value; 
     var userName2 = document.getElementById("username2").value; 
     var quantity = document.getElementById("quantity").value; 
     var cost = document.getElementById("cost").value; 
     var extendedCost = quantity * cost; 
     var taxAmount = extendedCost * TAXRATE; 
     var discountAmount = calcDiscount(quantity) * extendedCost; 
     var orderCost = extendedCost - discountAmount + taxAmount; 
     document.getElementById("costExtended").value = "$" + orderCost.toFixed(2); 

     document.getElementById("output").innerHTML += "<p>Hello " + userName + userName2 + " - Your order of " + quantity + " widgets, totals $" + orderCost.toFixed(2) + ", including tax" + "and a" + discountAmount + "% discount.</p>"; 
    } else { 
     document.getElementById("costExtended").value = ""; 
     alert("Please correct your input"); 
    } 
} // end function calcOrder 

答えて

1

次のいずれかがfalseを返すと、エラーがポップアップ持っていることは明らかである:

validateFirstName() && validateLastName() && validatePhone() && validateQuantity() && calcDiscount(quantity) 

それがどのような原因を知ることは困難ですので、あなたがそれらのいずれかの機能が含まれていませんでしたが問題はそれを含むように質問を更新するのではなく、それらの機能の1つまたはすべてのバグが些細なものになり、解決する必要がある回答がすでにどこかにあるので、もう少し学ぶ必要があると思います。

var discount = Math.floor(quantity/10)/10; 
+0

:ところで

、私はの場合は作品のリストが、あなたがこのようなことを仕事にするだけの1行を持つことができるので、あなたが割引をうまくいくあなたの機能であなたのロジックを絞り込む示唆しますまあ、私は "離れて行く"と思います。申し訳ありませんが、私は助けを求めていました。 –

+0

私は自分の答えを調整したわけではありませんでした。なぜなら、否定的なやり方で逃げることを意味しなかったからです。私は本当に何が起こっているのかについてもっと知ることを示唆しています。 –

関連する問題