Eba*_*ory 20 javascript jquery input
我有代码:
function compute() {
if ($('input[name=type]:checked').val() != undefined) {
var a = $('input[name=service_price]').val();
var b = $('input[name=modem_price]').val();
var total = a + b;
$('#total_price').val(a + b);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我想要两个文本输入的和值,并写入一个id为"total"的文本输入
我的两个数字并不是例如:
service_price value = 2000并且modem_price=4000
在本实施例中总输入值必须是6000,但它是20004000
Sor*_*gal 26
因为至少有一个值是字符串,所以+运算符被解释为字符串连接运算符.对此最简单的解决方法是指示您希望将值解释为数字.
var total = +a + +b;
Run Code Online (Sandbox Code Playgroud)
和
$('#total_price').val(+a + +b);
Run Code Online (Sandbox Code Playgroud)
或者,更好的是,只需将它们作为数字开始:
var a = +$('input[name=service_price]').val();
var b = +$('input[name=modem_price]').val();
var total = a+b;
$('#total_price').val(a+b);
Run Code Online (Sandbox Code Playgroud)
请参阅Mozilla的Unary +文档.
请注意,如果您知道该值将是一个数字,这只是一个好主意.如果这是用户输入,您必须更加小心,并且可能希望使用parseInt和其他答案建议的其他验证.
Tad*_*eck 25
您的代码是正确的,除了您添加(连接)字符串,而不是添加整数.只需将您的代码更改为:
function compute() {
if ( $('input[name=type]:checked').val() != undefined ) {
var a = parseInt($('input[name=service_price]').val());
var b = parseInt($('input[name=modem_price]').val());
var total = a+b;
$('#total_price').val(a+b);
}
}
Run Code Online (Sandbox Code Playgroud)
这应该工作.
下面是一些工作示例,当复选框中的值复选时更新总和(如果选中此选项,则在更改其中一个字段时也会更新值):jsfiddle.
使用parseInt作为 a = parseInt($('input[name=service_price]').val())
使用parseInt
var total = parseInt(a) + parseInt(b);
$('#total_price').val(total);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98929 次 |
| 最近记录: |