2016-08-08 2 views
-1

통화 용 입력란을 만들려면 어떻게해야합니까? 초기

:         0.00
유형 "1": 0.01
유형 "2": 0.12
유형 "5": 1.25
HTML/자바 스크립트 입력시 소수 자릿수 2 자릿수 입력

을 나는 다음과 같이이 일을 찾고 있어요 나는 웹 디자인에 새로운 것이므로 더 간단한 해결책을 찾고있다. 유사한 질문이 &이 각도의 솔루션을 사용하여 봤지만 내 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"); 
     } 
    };