當兩個數字相乘並將結果寫入第三個輸入時,我有3個輸入。但是,當完全沒有必要時,我需要消除小數。消除乘法結果中不必要的小數點
<input type="text" name="input1" id="input1" value="" size="4" class="inputt" />
<br>
<input type="text" name="input2" id="input2" value="" size="4" class="inputt" />
<br>
<input type="text" readonly="readonly" name="input3" id="input3" value="" size="4" class="inputt" />
例如; 150.00應表示爲150,但150.50應保持原樣。
而且,當乘法後寫入結果時,我必須單擊readonly輸入以使結果四捨五入。我需要結果編號的最終指示,而不需要任何點擊。要更好地理解,請將第一個12.5寫入第二個12.1123,然後查看結果。
$(document).ready(function() {
$("#input1, #input2").change(function() {
$("#input3").val($("#input1").val() * $("#input2").val());
var num =$("#input3").val();
num = num.toFixed(2);
});
});
$(function() {
$('#input1').keyup(function(){
if($(this).val().indexOf('.')!=-1){
if($(this).val().split(".")[1].length > 2){
if(isNaN(parseFloat(this.value))) return;
this.value = parseFloat(this.value).toFixed(2);
}
}
return this;
});
});
$(function() {
$('#input2').keyup(function(){
if($(this).val().indexOf('.')!=-1){
if($(this).val().split(".")[1].length > 5){
if(isNaN(parseFloat(this.value))) return;
this.value = parseFloat(this.value).toFixed(2);
}
}
return this;
});
});
$('input#input3').blur(function(){
var num = parseFloat($(this).val());
var cleanNum = num.toFixed(2);
$(this).val(cleanNum);
});
這裏是代碼http://jsfiddle.net/mLfkd/2/
很好..我遇到了一個情況,結果是150.00,當我寫266到第一個輸入和0.5639到第二個。這是因爲任何舍入問題? – ctsnr
@ctsnr是的,toFixed是四捨五入的([有時候...](http://stackoverflow.com/questions/10015027/javascript-tofixed-not-rounding))如果你只是想切斷它試試[這個解決方案] (http://stackoverflow.com/a/4187164/2817961):'Math.floor(num * 100)/ 100' –
聽起來合乎邏輯,但我無法得到它與輸入266 * 0.5639的工作,雖然我試圖找到這個代碼到可能的位置。請問可以更新小提琴嗎? – ctsnr