jQuery从另外两个字段计算字段
我不明白为什么这不能正常工作: 我只想显示税额,但它得到jQuery从另外两个字段计算字段,jquery,Jquery,我不明白为什么这不能正常工作: 我只想显示税额,但它得到false结果 // calculate brutto and tax $(document).on('keyup paste', '#netto', function() { var brutto = $("#brutto").val(); var netto = $("#netto").val(); $("#brutto").val(netto * 1.19); $("#tax").val(brutto
false
结果
// calculate brutto and tax
$(document).on('keyup paste', '#netto', function() {
var brutto = $("#brutto").val();
var netto = $("#netto").val();
$("#brutto").val(netto * 1.19);
$("#tax").val(brutto - netto);
});
在执行操作之前,需要验证
brutto
元素的值是否为数字。+
运算符用于将输入转换为数字
$(document).on('keyup paste', '#netto', function() {
var brutto = +$("#brutto").val() || 1;
var netto = +$("#netto").val() || 1;
brutto = netto * 1.19;
$("#brutto").val(brutto);
$("#tax").val(brutto - netto);
});
这也很有用,因为元素是只读的。
在执行操作之前,您需要验证
brutto
元素是一个数字的值。+
运算符用于将输入转换为数字
$(document).on('keyup paste', '#netto', function() {
var brutto = +$("#brutto").val() || 1;
var netto = +$("#netto").val() || 1;
brutto = netto * 1.19;
$("#brutto").val(brutto);
$("#tax").val(brutto - netto);
});
这也很有用,因为元素是只读的。
将字符串解析为int,将事件更改为输入类型事件:
$(document).on('input', '#netto', function () {
var brutto = parseInt($("#brutto").val());
var netto = parseInt($("#netto").val());
$("#brutto").val(netto * 1.19);
$("#tax").val((netto * 1.19) - netto );
});
最好使用输入类型编号,这样就不会出现无效值的问题
或:
如果要在NaN为空时去掉它,请将字符串解析为int,将事件更改为输入类型事件:
$(document).on('input', '#netto', function () {
var brutto = parseInt($("#brutto").val());
var netto = parseInt($("#netto").val());
$("#brutto").val(netto * 1.19);
$("#tax").val((netto * 1.19) - netto );
});
最好使用输入类型编号,这样就不会出现无效值的问题
或:
如果要在NaN为空时清除它,请尝试以下代码:
// calculate brutto and tax
$(document).on('keyup paste', '#netto', function () {
var brutto = $("#brutto").val();
var netto = $("#netto").val();
$("#brutto").val(netto * 1.19);
var brutto1 = $("#brutto").val();
$("#tax").val(brutto1 - netto);
}))
在您的代码中,新值(natto*1.19)之后的变量中不会更新brutto的值,因此您会得到错误的结果
谢谢…请尝试以下代码:
// calculate brutto and tax
$(document).on('keyup paste', '#netto', function () {
var brutto = $("#brutto").val();
var netto = $("#netto").val();
$("#brutto").val(netto * 1.19);
var brutto1 = $("#brutto").val();
$("#tax").val(brutto1 - netto);
}))
在您的代码中,新值(natto*1.19)之后的变量中不会更新brutto的值,因此您会得到错误的结果
感谢…问题在于,在填充之前先获得brutto值,解决方案是在计算
$(“#brutto”).val(netto*1.19)后获得var brutto
:
//计算残值税
$(document).on('keyup-paste','#netto',function(){
var netto=+$(“#netto”).val();
$(“布鲁托”).val(净额*1.19);
var brutto=+$(“#brutto”).val();
美元(“#税”).val(布鲁托-内托);
});代码>
布鲁托
税款19%
内托
问题在于,在填充之前先获得brutto值,解决方案是在计算$(“#brutto”).val(netto*1.19)后获得var brutto
:
//计算残值税
$(document).on('keyup-paste','#netto',function(){
var netto=+$(“#netto”).val();
$(“布鲁托”).val(净额*1.19);
var brutto=+$(“#brutto”).val();
美元(“#税”).val(布鲁托-内托);
});代码>
布鲁托
税款19%
内托
您能定义有效的吗?你是什么意思?为什么这不起作用?你能描述一下幕后发生了什么吗?@lewis4u,当你在执行数学运算时,你需要检查输入是数字还是NOTK…jQuery中是否有一些函数可以检查isset()是否与php@lewis4u,您可以通过js typeof方法进行检查,如果数字在字符串“8”中,您可以通过+8将其更改为数字类型@lewis4u,下一次请用英语术语,因为我完全不知道术语brutto
你能定义有效吗?你是什么意思?为什么这不起作用?你能描述一下幕后发生了什么吗?@lewis4u,当你在执行数学运算时,你需要检查输入是数字还是NOTK…jQuery中是否有一些函数可以检查isset()是否与php@lewis4u,您可以通过js typeof方法进行检查,如果数字在字符串“8”中,您可以通过+8将其更改为数字类型@lewis4u,下一次请使用英语术语,因为我完全不知道术语brutto
请不要忘记radix
和parseInt()
什么是基数???@lewis4u,数学数字的基数请看是的。但这并不是最优的。用户Francesco Roggia指出了我的代码不起作用的原因。关键的一点是,我在一开始就声明了brutto,而不是在计算了brutto之后…我只需要切换行,现在就可以了!不要忘记radix
withparseInt()
什么是基数???@lewis4u,数学数字的基数请看是的,它可以工作。但这并不是最优的。用户Francesco Roggia指出了我的代码不起作用的原因。关键的一点是,我在一开始就声明了brutto,而不是在计算了brutto之后…我只需要切换行,现在就可以了!