我有4个这样的文字输入,
<input type="text" name="amount" id="amount">
<input type="text" name="commission" id="commission">
<input type="text" name="discount" id="discount">
<input type="text" name="total_amount" id="total_amount">
我在这里根据total_amount
的值计算#amount
。要做到这一点,我使用像这样的ajax,
var minlength = 2;
$("#amount").on('input', function () {
var value = $(this).val(),
if (value.length >= minlength ) {
$.ajax({
type: "POST",
url: "includes/transactions/proccess_amount.php",
data: {'amount':value},
success: function(response) {
response = jQuery.parseJSON(response)
$('#make_transaction')
.find('[name="commission"]').val(response.commission).end()
.find('[name="total_amount"]').val(response.total_amount).end();
}
});
}
});
现在,如果total_amount
字段值为#discount
,我想再次更改keyup
。所以我为#discount keyup
创建了一个ajax请求,它为我工作。
var strLength = 1;
$("#discount").keyup(function () {
var discount = $(this).val(),
amount = $('#amount').val(),
comison = $('#commission').val(),
total = $('#total_amount').val();
if (discount.length >= strLength ) {
$.ajax({
type: "POST",
url: "includes/transactions/proccess_discount.php",
data: { 'amount':amount
, 'comison': comison
, 'total' : total
, 'discount': discount
},
success: function(response) {
response = jQuery.parseJSON(response)
$('#amount_dolar').val('');
$('#make_transaction')
.find('[name="amount_dolar"]').val(response.amount).end()
.find('[name="total_amount"]').val(response.totalAfterDiscount).end();
}
});
}
});
脚本看起来像这样。
total_amount
我的问题是,当折扣字段为空时,我想显示之前的{{1}}。在这个阶段,它始终显示折扣总额。
有人可以告诉你怎么做吗? 谢谢。
答案 0 :(得分:0)
我建议在成功&#39;中再次使用#amount ajax电话。对#discount调用的响应部分。问题似乎是#amount ajax正在调用proccess_amount.php而#discount ajax正在调用proccess_discount.php。
答案 1 :(得分:0)
在您正在进行ajax调用的折扣输入的keyup中保留cookie中的初始总金额,当折扣变为null或为空时,将该总帐户从cookie添加到总金额输入。
答案 2 :(得分:0)
答案取决于response.totalAfterDiscount
简单的解决方案是使用或运算符||
.val(response.totalAfterDiscount || response.amount)
但问题是,如果totalAfterDiscount为零(可能是100%折扣销售)而不是显示金额而不是折扣。
因此,下一个选项取决于没有折扣时totalAfterDiscount持有的内容。
如果它包含空字符串
.val(response.totalAfterDiscount.length ? response.totalAfterDiscount : response.amount)
如果未定义
.val(response.totalAfterDiscount!==undefined ? response.totalAfterDiscount : response.amount)