使用十进制数字段计算
我正在尝试使用设置了小数位的数字字段进行计算。使用十进制数字段计算
小数点正确显示时,计算未运行。下面是我的javascript:
function setZeroNumberDecimal(el) {
el.value = parseFloat(el.value).toFixed(0);
};
function setThreeNumberDecimal(el) {
el.value = parseFloat(el.value).toFixed(3);
};
$(document).ready(function(){
$(".calc").keyup(function(){
var areasf = +$(".SF").val();
$("#acre").val(areasf/43560);
});
});
和HTML:
<input type="number" onchange="setZeroNumberDecimal(this)" name="grosslandSF" class="calc SF">
<input type="number" onchange="setThreeNumberDecimal(this)" name="grosslandacre" disabled="disabled" id="acre">
任何帮助将是巨大的。
您可以使用oninput事件代替内联onchange事件。
当您更改像一个值:
$("#acre").val(areasf/43560)
这不会fire相应的事件,所以你必须自己做这件事:
$("#acre").val(areasf/43560).trigger('input');
的片段:
function setZeroNumberDecimal(el) {
el.value = parseFloat(el.value).toFixed(0);
};
function setThreeNumberDecimal(el) {
el.value = parseFloat(el.value).toFixed(3);
};
$(document).ready(function(){
$(".calc").keyup(function(){
var areasf = +$(".SF").val();
$("#acre").val(areasf/43560).trigger('input');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="number" oninput="setZeroNumberDecimal(this)" name="grosslandSF" class="calc SF">
<input type="number" oninput="setThreeNumberDecimal(this)" name="grosslandacre" disabled="disabled" id="acre">
</form>
谢谢,calc正在运行并坚持3位小数。然而,如果你输入43560,结果是1,而它应该是1.000(这是一个土地的东西,亩,即使是一个整数,总是应该导致3位小数) –
@MichaelM事实上,如果你输入43560,结果是1.000。你正在使用哪种浏览器? – gaetanoM
你是对的。我忘了把我的onchange改成oninput。谢谢你,gaetanoM。你救了我一个巨大的头痛! –
看看这[回答](http://stackoverflow.com/a/34057860/4824627)和这[回答](http://stackoverflow.com/a/22654797/4824627)和这[回答]( http://stackoverflow.com/q/19011861/4824627),'step'可能是这里的问题 –
小数不是问题。这是计算。 –