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/