将所有计算的文本框小数位舍入为2

时间:2017-09-05 09:26:37

标签: javascript html

您好我的脚本存在问题,我希望同时在文本框中将所有结果舍入到每个文本框中的每个更改。

我在谈论数百个文本框,它们会在文本框上的每次更改/输入后完成。

无论如何,这是我工作的示例代码。

HTML:

<input type="text" id="textbox" value="1.1251112314555" />
<br/>
<input type="text" id="textbox2" value="1" />
<br/>
<input type="text" id="textbox3" value="1" readonly/>
<br/>
<input type="text" id="textbox4" value="1" readonly/>
<br/>

使用Javascript:

$("input[type=text]").blur(function() {

  totalad3 = parseInt(textbox) * parseInt(textbox2);
    totalad4 = parseInt(textbox) + parseInt(textbox2);

  $('#textbox3').val(totalad3);  
  $('#textbox4').val(totalad4+"%");    

    var num = parseFloat($("input[type=text]").val());
    var new_num = $("input[type=text]").val(num.toFixed(2));
});

enter image description here

3 个答案:

答案 0 :(得分:3)

如果要在任何输入的blur事件中使用舍入值更新每个输入中的值,则在处理函数中获取所有输入,然后迭代每个输入并更改其值。像这样的东西:

$('input[type=text]').on('blur', function() {
    var inputs = $('input[type=text]');
    inputs.each(function(){
        var num = parseFloat($(this).val());
        var new_num = num.toFixed(2);
        $(this).val(new_num);
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" id="textbox" value="1.1251112314555" />
<br/>
<input type="text" id="textbox2" value="1" />
<br/>
<input type="text" id="textbox3" value="1" readonly/>
<br/>
<input type="text" id="textbox4" value="1" readonly/>
<br/>
<input type="button" id="calculate" value="Calculate"/>

答案 1 :(得分:0)

  

数百个文本框将在每次更改/输入后完成   文本框。

如果我理解你的要求......

&#13;
&#13;
$("input[type=text]").blur(function() {
     
       	// console.log("Which textbox has changes?", $(this).val() );
         
         // Get current input value
         var currentInputValue = parseFloat($(this).val());
         
         // Round them to 2 decimal
         var roundedValue = currentInputValue.toFixed(2);
         
         // Update back to textbox
         $(this).val( roundedValue );
         
     });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="textbox" value="1.1251112314555" />
<br/>
<input type="text" id="textbox2" value="1" />
<br/>
<input type="text" id="textbox3" value="1" readonly/>
<br/>
<input type="text" id="textbox4" value="1" readonly/>
<br/>
<input type="text" id="textbox5" value="123.2323" />
<br/>
<input type="text" id="textbox6" value="1.444" />
<br/>
<input type="text" id="textbox7" value="23.23235" />
<br/>
<input type="button" id="calculate" value="Calculate"/>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

使用 Array.from和Map函数的另一种方法。

<script type="text/javascript">
    $(function () {
        $("input[type=text]").on('blur', function(){
            Array.from($("input[type=text]"), (el, i) => $(el).val(parseFloat($(el).val()).toFixed(2)));
        })
    });
</script>

<input type="text" id="textbox" value="1.1251112314555" />
<br/>
<input type="text" id="textbox2" value="1" />
<br/>
<input type="text" id="textbox3" value="1" readonly/>
<br/>
<input type="text" id="textbox4" value="1" readonly/>
<br/>
<input type="button" id="calculate" value="Calculate" />