0

OK、私はこれで髪を引っ張っています。主にドロップダウン選択とチェックボックスで構成されるフォームがあります。これらにはすべて値が割り当てられているため、ユーザーが選択すると、すべての合計値が計算されます。

最後の入力フィールドは「割引コード」というテキスト入力です。セット コードを入力して、合計から一定額を差し引くことができるようにしたいと考えています。

以下は、割引コードが正しいかどうかを検出するために使用しているスクリプトです。

$(".apply_discount").click(function() {
if ($("input[name='discount']").val() === "DISTR50") {
 $("span").text("Validated...").show();
 $("input[name='discount']").attr("value",500.99);
 return true;
}
$("span").text("Not a valid discount code").show().fadeOut(2000);
return false;
});

そして、ここに私の入力の合計を計算するコードがあります:

//iterate through each textboxes and add keyup
    //handler to trigger sum event
    $(".txt, .select, .checkbox").each(function() {
        $(this).change(function(){
            calculateSum();
        });
    });
});

function calculateSum() {
    var discount = $("input[name='discount']").attr('value');
    var sum = 0;
    //iterate through each textboxes and add the values
    $(".txt, .select, .checkbox:checked").each(function() {

        //add only if the value is number
        if(!isNaN(this.value) && this.value.length!=0) {
            sum += parseFloat(this.value);
        }

    });
    //.toFixed() method will roundoff the final sum to 2 decimal places
    var calc_total = sum;
    $("#sum").html(calc_total.toFixed(2));
}

ご覧のとおり、合計は #sum という div に追加されています。割引入力の値を減算する方法がわかりません。

ここで私のコードの動作を確認できます: http://www.samskirrow.com/projects/distr/index3.html

これはJSfiddleにあります(ただし、マイレージセクションの計算は機能しません) http://jsfiddle.net/bZhK4/

4

1 に答える 1

1

うまくいけば、あなたが探しているものを理解できます: calc_total を次のように宣言する calc sum 関数を変更できませんでした:

var calc_total = sum - parseFloat(discount);

そして、割引適用機能で必ず更新してください

$(".apply_discount").click(function() {
  if ($("input[name='discount']").val() === "DISTR50") {
  $("span").text("Validated...").show();
  $("input[name='discount']").attr("value",500.99);
  calculateSum();
  return true;
  }
  $("span").text("Not a valid discount code").show().fadeOut(2000);
  return false;
});
于 2013-09-10T15:28:03.960 に答える