お題の通りなんですが、
inputに入力しているそばから 自動で小数点以下2桁付「出来れば小数点下3桁目を四捨五入」にフォーマットする方法はあるでしょうか?
toFixed(2)とか 色々調べて試しては見たんですが実現できなくて困っています。
宜しくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
回答3件
0
ベストアンサー
html
1<!DOCTYPE HTML> 2<html lang="ja-JP"> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 9 <form action=""> 10 <input class="num" type="text" name="num[]" /> 11 <input class="num" type="text" name="num[]" /> 12 <input class="num" type="text" name="num[]" /> 13 <input class="num" type="text" name="num[]" /> 14 </form> 15 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 16 <script type="text/javascript"> 17 $(function () { 18 $(".num").on('change', function () { 19 var val = $(this).val(); 20 var n = Math.round(val * 100) / 100; 21 $(this).val(n); 22 }); 23 }); 24 </script> 25 </body> 26</html>
コメントを受けて追記
html
1<!DOCTYPE HTML> 2<html lang="ja-JP"> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 9 <form action=""> 10 <input class="num" type="text" name="num[]" /> 11 <input class="num" type="text" name="num[]" /> 12 <input class="num" type="text" name="num[]" /> 13 <input class="num" type="text" name="num[]" /> 14 </form> 15 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 16 <script type="text/javascript"> 17 $(function () { 18 $(".num").on('change', function () { 19 var val = $(this).val(); 20 var n = new Number(val); 21 $(this).val(n.toFixed(2)); 22 }); 23 }); 24 </script> 25 </body> 26</html>
投稿2015/12/18 16:02
編集2015/12/18 16:22退会済みユーザー
総合スコア0
0
$(".num").change(function(){
var n = $(this).val();
// 小数点以下2桁に直してnに
$(this).val(n);
});
投稿2015/12/18 15:29
総合スコア432
回答ありがとうございます。
<form id="quotation" name="quotation" action="./" method="POST">
<input id="num1" class="num" type="number" val="" name="num" value="" />
</form>
上記コードに下記のスクリプトを試してみたんですけど
$(".num").change(function(){
var n = $(this).val();
n.toFixed(2);
$(this).val(n);
});
やはり 入力値がそのまま表示されてしまいます。
0
イベントはonblurまたはonchangeで
数値であることをチェックした上で
100で乗算→四捨五入→100で除算(小数点第3位で四捨五入された値になる)
投稿2015/12/18 14:51
総合スコア1857
退会済みユーザー
2015/12/18 15:50 編集
ありがとうございます。
一応 下記のようなソースを試してみたのですが
実際にはformの中に 同じクラス( class="num")のinputが複数あり 省略しています。
type="number"に指定してありますので、数値のチェックは省略しています。
<form id="quotation" name="quotation" action="./" method="POST">
<input id="num1" class="num" type="number" val="" name="num" value="" />
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript">
jQuery(function($){
$(document.forms["quotation"]).change(function(){
$(".quotation").each(function() {
var num = $(this).find('.num').val(); //inputの値を取得
num.toFixed(2);//小数点以下2桁まで表示にフォーマット
$(this).find('.num').val(num);//値挿入
});
});
});
</script>
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
退会済みユーザー
2015/12/18 16:16
退会済みユーザー
2015/12/18 23:40
退会済みユーザー
2015/12/19 09:13