Javascript文本框值输出NAN on.Change
我对javascript真的很陌生,并尝试过谷歌搜索。但是我没有发现任何运气。 所以请帮助我,每次我在文本框中输入一个值。另一个文本框将显示nan,然后当我尝试更改nan值时,我输入的第一个文本框将返回值的前千位 这是我的问题所在 这是我的密码Javascript文本框值输出NAN on.Change,javascript,jquery,Javascript,Jquery,我对javascript真的很陌生,并尝试过谷歌搜索。但是我没有发现任何运气。 所以请帮助我,每次我在文本框中输入一个值。另一个文本框将显示nan,然后当我尝试更改nan值时,我输入的第一个文本框将返回值的前千位 这是我的问题所在 这是我的密码 $(document).on('change', '#family_home,#home_contents,#motor_vehicle,#Total', function() { updateTotal(); }); var up
$(document).on('change', '#family_home,#home_contents,#motor_vehicle,#Total', function() {
updateTotal();
});
var updateTotal =function() {
var a = parseInt($('#family_home').val());
$('#family_home').val(a.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
var b = parseInt($('#home_contents').val());
$('#home_contents').val(b.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
var c = parseInt($('#motor_vehicle').val());
$('#motor_vehicle').val(c.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
var total = parseInt(a)+parseInt(b)+parseInt(c);
$("#Total").html(total);
};
请帮忙。谢谢我知道我是个新手,但我想从你们那里获得更多的知识。所以请把它传给我。Thank属性是一个表示非数字的值。要在代码中避免这种行为,可以使用isNaN函数:
$(document).on('change', '#family_home,#home_contents,#motor_vehicle,#Total', function() {
updateTotal();
});
var updateTotal =function() {
var a = parseInt($('#family_home').val());
$('#family_home').val(a.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
var b = parseInt($('#home_contents').val());
if (!isNaN(b))
$('#home_contents').val(b.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
var c = parseInt($('#motor_vehicle').val());
if (!isNaN(c))
$('#motor_vehicle').val(c.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
var total = parseInt(a)+parseInt(b)+parseInt(c);
$("#Total").html(total);
};
请使用此代码:
$(document).on('change', '#family_home,#home_contents,#motor_vehicle,#Total', function() {
updateTotal();
});
var updateTotal =function() {
var re=new RegExp(",","g");
var a = parseInt($('#family_home').val().replace(re,""),10);
if(!isNaN(a))
$('#family_home').val(a.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
var b = parseInt($('#home_contents').val().replace(re,""),10);
if (!isNaN(b))
$('#home_contents').val(b.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
var c = parseInt($('#motor_vehicle').val().replace(re,""),10);
if (!isNaN(c))
$('#motor_vehicle').val(c.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
var total = parseInt(a)+parseInt(b)+parseInt(c);
$("#Total").html(total);
};
重复-,哇,谢谢,这完全有效。但是,当我点击下一个文本框时,如何设置每个文本框以自动输出逗号?我尝试了。在“keyup”上,但它会将整数返回到前千个。对于输出逗号,您必须使用当前逻辑进行字符串替换。但是要小心,在读取值并将其传递给parseInt时,请确保再次使用空字符串替换逗号,以便parseInt正确解析输入。此外,在使用parseInt时,始终包括第二个参数,即parseIntmytext,10;第二个参数10确保您希望解析的值是十进制10。其他可能是2位二进制,16位十六进制,8位八进制。嗨,我已经更新了上面的代码来反映你想要的。由于某些错误,无法保存小提琴。为什么我的答案为-1?请说明原因。这真是太棒了,谢谢你的帮助。我希望我能投票赞成你的答案。这真的帮助了我。非常感谢