我使用以下代码从属性data-price
获取价格,该属性分配给单选按钮,如下所示:data-price="25.00"
jQuery(document).ready(function($){
var frm = document.forms.myForm;
frm.onchange = function(e) {
var tot = 0;
for( var i = 0, l = frm.elements.length; i < l; i++ ) {
if( frm.elements[i].checked ) {
tot += parseFloat( frm.elements[i].getAttribute('data-price') );
}
}
document.getElementById('total').value = ( tot );
}
})
我得到的问题是,当它在下面示例的输入框中显示它时,它只会显示25我需要它说25.00有没有办法解决这个问题?
答案 0 :(得分:2)
tot.toFixed(2)
会给你结果。
既然你使用了jQuery,你可以编写更多类似jQuery的代码,就像下面的例子一样,只是一个建议:
$(function () {
$('form[name="myForm"]').change(function () {
var tot = 0;
$('input:checked', this).each(function () {
tot += parseFloat($(this).data('price'));
});
$('#total').val(tot.toFixed(2));
});
});
答案 1 :(得分:2)
尝试分配tot.toFixed(2)
。希望有所帮助!
答案 2 :(得分:1)
如果是一个数字,Javascript将不会显示25.00
console.log(25.00);
alert(25.00)
两者都显示25.仅当后面有非零数字时才有效。
console.log(25.03);
因此,将其转换为数字进行计算,并在文本框中显示时使用.toFixed(2)
,就像其他人在此处所建议的那样。
document.getElementById('total').value = tot.toFixed(2);
toFixed
将其转换为字符串。