2016-08-08 4 views
-1

通貨の入力項目を作成するにはどうすればよいですか?初期

:        0.00
タイプ "1":0.01
タイプ "2":0.12
タイプ "5":1.25
HTML/Javascriptを入力するときに小数点以下2桁に入力する

を私は次のようにそれを動作させるために探しています私はウェブデザインでかなり新しいので、私はより簡単な解決策を探しています。同様の質問&がAngularソリューションでこの質問に答えましたが、私はそれをHTMLプロジェクトに実装する方法が不明です。私はそれにHTMLファイルを持つ単純なフォルダを持っています。ありがとう!

+0

。 –

+0

私は角度の解決策を試しましたが、実装方法は不明です。私はiOSプロジェクトのテキストフィールドで同様の機能を実現していますが、ロジックが同じかどうかはわかりません –

+0

同じ答えがあります:http://stackoverflow.com/questions/38972448/force-input-number-decimal-場所にネイティブに/ 38982343 – Mojtaba

答えて

0

これはやりにくいことでした。問題の(コード努力を共有していない)努力の欠如は、これを行うために私を改革した。しかし複雑さは私にそれを分かち合うために呼び出されました。他の多くの人にとっても助けになるかもしれません。あなたが最初に何かを試してみて

Working Demo

document.getElementById("demo").onkeydown = function (e) { 
     //console.log(e.keyCode); 
     if (e.keyCode != 37 && e.keyCode != 39 && e.keyCode != 8 && e.keyCode != 46) 
      e.preventDefault(); 

     if (e.keyCode == 8 || e.keyCode == 46) { 
      //If already key down (backspaceOrDel=1) then no affect 
      if (backspaceOrDel == 1) 
       e.preventDefault(); 
      else 
       backspaceOrDel = 1; 
      return; 
     } 

     if (e.keyCode < 48 || (e.keyCode > 57 && e.keyCode <96) || e.keyCode > 105) 
      return; 
     try {     
      var val = this.value; 
      var val1 = 0; 
      if (val == 0) { 
       val1 = e.key/100; 
      } 
      else { 
       //very tricky. We needed val1=val*10+e.key but it does not 
       //work correctly with floats in javascript. 
       //Here you have to different than android in logic 
       var val1 = parseFloat(val) * 1000; 
       val1 += parseFloat(e.key); 
       val1 = val1/100; 
      } 
      val1 = val1.toFixed(2); 
      if (!isNaN(val1)) 
       this.value = val1; 
     } 
     catch (ex) { 
      alert("Invalid Amount"); 
     } 
    }; 
関連する問題