복붙노트

[JQUERY] jQuery를 : 텍스트 상자에 "번호"를 전용 입력을 제한하는 가장 좋은 방법은 무엇입니까? (소수점 포인트를 허용)

JQUERY

jQuery를 : 텍스트 상자에 "번호"를 전용 입력을 제한하는 가장 좋은 방법은 무엇입니까? (소수점 포인트를 허용)

해결법


  1. 1.이것에 대한 새롭고 매우 간단한 해결책이있다 :

    이것에 대한 새롭고 매우 간단한 해결책이있다 :

    이 답변을 참조하거나 JSFiddle에 직접보십시오.

    나는 성공적으로 jquery.numeric 플러그인 다양한 형태로 구현했습니다.

    $(document).ready(function(){
        $(".numeric").numeric();
    });
    

    또한 이것은 또한 텍스트 영역에서 작동!

    그러나, Ctrl + A가 복사 +가와 드래그 (상황에 맞는 메뉴를 통해) 붙여 넣기주의는 + 드롭 예상하지 작동한다.

    입력 요소는 입력 수를 제한하기위한 HTML 5 표준에 대한 폭 넓은 지원을 통해, 우리는 패턴 속성 및 숫자 형식을 사용할 수 있습니다. 일부 브라우저 (특히 구글 크롬)에서, 그것은뿐만 아니라 숫자가 아닌 내용을 붙여 제한하기 위해 노력하고 있습니다. 번호 및 기타 새로운 입력 유형에 대한 자세한 내용은 여기에서 확인할 수 있습니다.


  2. 2.당신이 (같은 검증에 반대) 입력을 제한하려면, 당신은 키 이벤트와 함께 일할 수 있습니다. 이 같은:

    당신이 (같은 검증에 반대) 입력을 제한하려면, 당신은 키 이벤트와 함께 일할 수 있습니다. 이 같은:

    <input type="text" class="numbersOnly" value="" />
    

    과:

    jQuery('.numbersOnly').keyup(function () { 
        this.value = this.value.replace(/[^0-9\.]/g,'');
    });
    

    이것은 바로 그들이 검증 단계 등이 아닌 이상, 알파 문자를 입력 할 수있는 사용자의 노하우를 할 수 있습니다.

    입력이 절단 및 마우스로 또는 아마도 키 이벤트를 트리거하지 않을 수 있습니다 양식 Autocompleter에 의해 붙여 채울 수 있기 때문에 당신은 여전히 ​​유효성을 검사 할 수 있습니다.


  3. 3.나는 최선의 대답은 바로 이렇게하려면 위의 하나라고 생각했다.

    나는 최선의 대답은 바로 이렇게하려면 위의 하나라고 생각했다.

    jQuery('.numbersOnly').keyup(function () {  
        this.value = this.value.replace(/[^0-9\.]/g,''); 
    });
    

    그러나 나는 (그리고 그 때문에이 테스트에서 나에게 다시 쫓겨했다)는 화살표 키와 삭제 버튼은 문자열의 끝으로 커서를 스냅하는 고통의 비트가 동의

    나는 간단한 변경에 추가

    $('.numbersOnly').keyup(function () {
        if (this.value != this.value.replace(/[^0-9\.]/g, '')) {
           this.value = this.value.replace(/[^0-9\.]/g, '');
        }
    });
    

    그냥 무시 텍스트가 변경되도록하지 않을 아무 버튼이나 히트가있는 경우이 방법. 이하면 화살표를 칠 수와 마지막에 점프없이 삭제하지만 어떤 숫자가 아닌 텍스트를 지 웁니다.


  4. 4.jquery.numeric 플러그인은 내가의 저자를 통지 몇 가지 버그가 있습니다. 그것은 사파리와 오페라에서 여러 소수 점을 허용, 당신은, 백 스페이스를 입력 오페라에 키, 또는 여러 가지 다른 제어 문자를 화살표 수 없습니다. 난 그냥 결국 내 자신을 작성 결국 그래서 양의 정수 입력을 필요로했다.

    jquery.numeric 플러그인은 내가의 저자를 통지 몇 가지 버그가 있습니다. 그것은 사파리와 오페라에서 여러 소수 점을 허용, 당신은, 백 스페이스를 입력 오페라에 키, 또는 여러 가지 다른 제어 문자를 화살표 수 없습니다. 난 그냥 결국 내 자신을 작성 결국 그래서 양의 정수 입력을 필요로했다.

    $(".numeric").keypress(function(event) {
      // Backspace, tab, enter, end, home, left, right
      // We don't support the del key in Opera because del == . == 46.
      var controlKeys = [8, 9, 13, 35, 36, 37, 39];
      // IE doesn't support indexOf
      var isControlKey = controlKeys.join(",").match(new RegExp(event.which));
      // Some browsers just don't raise events for control keys. Easy.
      // e.g. Safari backspace.
      if (!event.which || // Control keys in most browsers. e.g. Firefox tab is 0
          (49 <= event.which && event.which <= 57) || // Always 1 through 9
          (48 == event.which && $(this).attr("value")) || // No 0 first digit
          isControlKey) { // Opera assigns values for control keys.
        return;
      } else {
        event.preventDefault();
      }
    });
    

  5. 5.더 이상 플러그인은 jQuery를이 V1.7에서 추가 자신의 jQuery.isNumeric ()를 구현하지 않았다.

    더 이상 플러그인은 jQuery를이 V1.7에서 추가 자신의 jQuery.isNumeric ()를 구현하지 않았다.

    $.isNumeric( "-10" );     // true
    $.isNumeric( 16 );        // true
    $.isNumeric( 0xFF );      // true
    $.isNumeric( "0xFF" );    // true
    $.isNumeric( "8e5" );     // true (exponential notation string)
    $.isNumeric( 3.1415 );    // true
    $.isNumeric( +10 );       // true
    $.isNumeric( 0144 );      // true (octal integer literal)
    $.isNumeric( "" );        // false
    $.isNumeric({});          // false (empty object)
    $.isNumeric( NaN );       // false
    $.isNumeric( null );      // false
    $.isNumeric( true );      // false
    $.isNumeric( Infinity );  // false
    $.isNumeric( undefined ); // false
    

    여기서, 이벤트 리스너에 ISNUMERIC ()을 묶는 방법의 예는

    $(document).on('keyup', '.numeric-only', function(event) {
       var v = this.value;
       if($.isNumeric(v) === false) {
            //chop off the last char entered
            this.value = this.value.slice(0,-1);
       }
    });
    

  6. 6.숫자 ()가 위에서 언급 한 플러그인 (당신은 백 스페이스, 삭제하거나 심지어 뒤로 또는 앞으로 키를 사용할 수 없습니다) 오페라에서 작동하지 않습니다.

    숫자 ()가 위에서 언급 한 플러그인 (당신은 백 스페이스, 삭제하거나 심지어 뒤로 또는 앞으로 키를 사용할 수 없습니다) 오페라에서 작동하지 않습니다.

    JQuery와 또는 자바 스크립트 모두에서 아래의 코드는 완벽하게 작동합니다 (그리고 그것은 단지 두 줄입니다).

    JQuery와 :

    $(document).ready(function() {
        $('.key-numeric').keypress(function(e) {
                var verified = (e.which == 8 || e.which == undefined || e.which == 0) ? null : String.fromCharCode(e.which).match(/[^0-9]/);
                if (verified) {e.preventDefault();}
        });
    });
    

    자바 스크립트 :

    function isNumeric(e)
    {
        var keynum = (!window.event) ? e.which : e.keyCode;
        return !((keynum == 8 || keynum == undefined || e.which == 0) ? null : String.fromCharCode(keynum).match(/[^0-9]/));
    }
    

    물론이 순수한 숫자 입력 (플러스 백 스페이스, 삭제, 앞으로 / 뒤로 키)입니다 만하지만 쉽게 변경할 수 있습니다 포인트와 마이너스 문자를 포함합니다.


  7. 7.당신은 수 () 메소드와 유효성 검사 플러그인을 사용할 수 있습니다.

    당신은 수 () 메소드와 유효성 검사 플러그인을 사용할 수 있습니다.

    $("#myform").validate({
      rules: {
        field: {
          required: true,
          number: true
        }
      }
    });
    

  8. 8.온로드 = 함수 () { VAR ELE document.querySelectorAll = [0] ( '숫자 전용.'); ele.onkeypress = 함수 (E) { 경우 (때는 isNaN (this.value + ""+ 대신 String.fromCharCode (e.charCode))) false를 반환; } ele.onpaste = 함수 (E) { e.preventDefault (); } } 에만 유효 INT 및 플로트 값을 허용

    입력 상자.

    온로드 = 함수 () { VAR ELE document.querySelectorAll = [0] ( '숫자 전용.'); ele.onkeypress = 함수 (E) { 경우 (때는 isNaN (this.value + ""+ 대신 String.fromCharCode (e.charCode))) false를 반환; } ele.onpaste = 함수 (E) { e.preventDefault (); } } 에만 유효 INT 및 플로트 값을 허용

    입력 상자.

    () {(기능 $ $ ( '. 숫자 전용'). 누르기 (함수 (E) { 경우 (때는 isNaN (this.value + ""+ 대신 String.fromCharCode (e.charCode))) 반환 거짓; }) CSTE 연구진 ({) 함수 (예를 들어 "컷 복사하여 붙여 넣기" e.preventDefault (); }); }); <스크립트 SRC = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> 에만 유효 INT 및 플로트 값을 허용

    입력 상자.

    최신 정보

    위의 답변은 가장 일반적인 사용 사례위한 - 숫자로 입력의 유효성을 검사.

    () {(기능 $ $ ( '. 숫자 전용.')의 keyup (함수 (E) { 만약 (! this.value = '-') 반면 (때는 isNaN (this.value)) this.value this.value.split = ( '').) (후진. 조인 ( ''). 대체 (/ [\ D] / I '') .split ( '')) (후진 가입.. ( ''); }) CSTE 연구진 ({) 함수 (예를 들어 "컷 복사하여 붙여 넣기" e.preventDefault (); }); }); <스크립트 SRC = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> 에만 유효 INT 및 플로트 값을 허용

    입력 상자.


  9. 9.아래는 말 그대로 키 입력을 차단하는 데 사용하는 것입니다. 이 숫자 만 0-9와 소수점을 할 수 있습니다. 쉬운 코드의하지를 많이 구현하고 매력처럼 작동합니다 :

    아래는 말 그대로 키 입력을 차단하는 데 사용하는 것입니다. 이 숫자 만 0-9와 소수점을 할 수 있습니다. 쉬운 코드의하지를 많이 구현하고 매력처럼 작동합니다 :

    <script>
    function isNumberKey(evt) {
        var charCode = (evt.which) ? evt.which : event.keyCode;
        if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
            return false;
        } else {
            return true;
        }      
    }
    </script>
    
    <input value="" onkeypress="return isNumberKey(event)">
    

  10. 10.이 제안에 약간의 개선으로, 당신은 (), 숫자 및 다양한 방법의 번호와 플러그인 유효성 검사를 사용할 수 있습니다. 예를 들어, 다음과 같은 보장하지만 당신은 0에서 50 사이의 양의 정수를 얻을 :

    이 제안에 약간의 개선으로, 당신은 (), 숫자 및 다양한 방법의 번호와 플러그인 유효성 검사를 사용할 수 있습니다. 예를 들어, 다음과 같은 보장하지만 당신은 0에서 50 사이의 양의 정수를 얻을 :

    $("#myform").validate({
      rules: {
        field: {
          required: true,
          number: true,
          digits: true,
          range : [0, 50]
        }
      }
    });
    

  11. 11.당신은 키 아래에 알파벳 마법의 모양과 실종을 볼니까. 마우스에이 작품이 너무 붙여 넣습니다.

    당신은 키 아래에 알파벳 마법의 모양과 실종을 볼니까. 마우스에이 작품이 너무 붙여 넣습니다.

    $('#txtInt').bind('input propertychange', function () {
        $(this).val($(this).val().replace(/[^0-9]/g, ''));
    });
    

  12. 12.내가 먼저 jQuery를 사용하여이 문제를 해결했지만, 난 그냥의 keyup에서 제거되기 전에 실제로 입력 필드에 나타나는 원치 않는 문자 (비 자리)에 대한 행복하지 않았다.

    내가 먼저 jQuery를 사용하여이 문제를 해결했지만, 난 그냥의 keyup에서 제거되기 전에 실제로 입력 필드에 나타나는 원치 않는 문자 (비 자리)에 대한 행복하지 않았다.

    나는이 발견 다른 솔루션을 찾고 :

    <script>
      function numbersOnly(oToCheckField, oKeyEvent) {
        return oKeyEvent.charCode === 0 ||
            /\d/.test(String.fromCharCode(oKeyEvent.charCode));
      }
    </script>
    
    <form name="myForm">
    <p>Enter numbers only: <input type="text" name="myInput" 
        onkeypress="return numbersOnly(this, event);" 
        onpaste="return false;" /></p>
    </form>
    

    출처 : https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onkeypress#Example 라이브 예 : http://jsfiddle.net/u8sZq/

    하나의 소수점은이 같은 뭔가를 할 수 있도록하려면 :

    <script>
      function numbersOnly(oToCheckField, oKeyEvent) {        
        var s = String.fromCharCode(oKeyEvent.charCode);
        var containsDecimalPoint = /\./.test(oToCheckField.value);
        return oKeyEvent.charCode === 0 || /\d/.test(s) || 
            /\./.test(s) && !containsDecimalPoint;
      }
    </script>
    

    출처 : 그냥이를 썼다. 작동하는 것 같다. 라이브 예 : http://jsfiddle.net/tjBsF/

    당신이 일을에 관심이있을 수있는 몇 가지 :

    나는 제목의 jQuery 솔루션을 요청 알고 있지만, 잘하면 사람이 유용한 어쨌든을 찾을 수 있습니다.


  13. 13.포스트 데이브 아론 스미스 주셔서 감사합니다

    포스트 데이브 아론 스미스 주셔서 감사합니다

    나는 소수점을 받아 답변을 편집 번호는 숫자 섹션입니다. 나를 위해이 작품의 완벽한.

    $(".numeric").keypress(function(event) {
      // Backspace, tab, enter, end, home, left, right,decimal(.)in number part, decimal(.) in alphabet
      // We don't support the del key in Opera because del == . == 46.
      var controlKeys = [8, 9, 13, 35, 36, 37, 39,110,190];
      // IE doesn't support indexOf
      var isControlKey = controlKeys.join(",").match(new RegExp(event.which));
      // Some browsers just don't raise events for control keys. Easy.
      // e.g. Safari backspace.
      if (!event.which || // Control keys in most browsers. e.g. Firefox tab is 0
          (49 <= event.which && event.which <= 57) || // Always 1 through 9
          (96 <= event.which && event.which <= 106) || // Always 1 through 9 from number section 
          (48 == event.which && $(this).attr("value")) || // No 0 first digit
          (96 == event.which && $(this).attr("value")) || // No 0 first digit from number section
          isControlKey) { // Opera assigns values for control keys.
        return;
      } else {
        event.preventDefault();
      }
    });
    

  14. 14.

       window.jQuery.fn.ForceNumericOnly =
           function () {
    
               return this.each(function () {
                   $(this).keydown(function (event) {
                       // Allow: backspace, delete, tab, escape, and enter
                       if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||
                           // Allow: Ctrl+A
                           (event.keyCode == 65 && event.ctrlKey === true) ||
                           // Allow: home, end, left, right
                           (event.keyCode >= 35 && event.keyCode <= 39)) {
                           // let it happen, don't do anything
                           return;
                       } else {
                           // Ensure that it is a number and stop the keypress
                           if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
                               event.preventDefault();
                           }
                       }
                   });
               });
           };
    

    그리고 당신이 원하는 모든 입력에 적용 :

    $('selector').ForceNumericOnly();
    

  15. 15.이 기능은, 같은 일을 위의 아이디어의 일부를 사용합니다.

    이 기능은, 같은 일을 위의 아이디어의 일부를 사용합니다.

    $field.keyup(function(){
        var val = $j(this).val();
        if(isNaN(val)){
             val = val.replace(/[^0-9\.]/g,'');
             if(val.split('.').length>2) val =val.replace(/\.+$/,"");
        }
        $j(this).val(val); 
    });
    

  16. 16.HTML5 시월 2015 CanIUse에 따른 글로벌 브라우저를 지원하는 입력 형식 번호 88 % +를 지원한다.

    HTML5 시월 2015 CanIUse에 따른 글로벌 브라우저를 지원하는 입력 형식 번호 88 % +를 지원한다.

    <input type="number" step="0.01" min="0" name="askedPrice" id="askedPrice" />
    

    이 JQuery와 관련 솔루션이 아니라, 장점은 휴대 전화에 안드로이드 키보드가 번호를 입력에 최적화 될 것입니다.

    대안 적으로, 새로운 파라미터 "패턴"으로 입력 텍스트 입력을 사용하는 것이 가능하다. HTML5 스펙에서 자세한 내용.

    나는 천 단위 구분을 지원하지 않는이 질문에 제공 JQuery와 솔루션 이후, JQuery와 솔루션보다 더 나은 생각합니다. 당신은 HTML5를 사용 할 수 있습니다.

    JSFiddle : https://jsfiddle.net/p1ue8qxj/


  17. 17./ * 이것은 내 크로스 브라우저 버전 어떻게 숫자 (0-9)에서 HTML에서 InputBox jQuery를 사용하는 경우에만 허용하는? * /

    / * 이것은 내 크로스 브라우저 버전 어떻게 숫자 (0-9)에서 HTML에서 InputBox jQuery를 사용하는 경우에만 허용하는? * /

    $("#inputPrice").keydown(function(e){
        var keyPressed;
        if (!e) var e = window.event;
        if (e.keyCode) keyPressed = e.keyCode;
        else if (e.which) keyPressed = e.which;
        var hasDecimalPoint = (($(this).val().split('.').length-1)>0);
        if ( keyPressed == 46 || keyPressed == 8 ||((keyPressed == 190||keyPressed == 110)&&(!hasDecimalPoint && !e.shiftKey)) || keyPressed == 9 || keyPressed == 27 || keyPressed == 13 ||
                 // Allow: Ctrl+A
                (keyPressed == 65 && e.ctrlKey === true) ||
                 // Allow: home, end, left, right
                (keyPressed >= 35 && keyPressed <= 39)) {
                     // let it happen, don't do anything
                     return;
            }
            else {
                // Ensure that it is a number and stop the keypress
                if (e.shiftKey || (keyPressed < 48 || keyPressed > 57) && (keyPressed < 96 || keyPressed > 105 )) {
                    e.preventDefault();
                }
            }
    
      });
    

  18. 18.그냥에서는 parseFloat을 통해 내용을 실행 (). 그것은 잘못된 입력에 NaN이 반환됩니다.

    그냥에서는 parseFloat을 통해 내용을 실행 (). 그것은 잘못된 입력에 NaN이 반환됩니다.


  19. 19.당신은 decorplanit.com에서 autoNumeric를 사용할 수 있습니다. 그들은 등, 반올림, 통화뿐만 아니라, 숫자위한 좋은 지원을

    당신은 decorplanit.com에서 autoNumeric를 사용할 수 있습니다. 그들은 등, 반올림, 통화뿐만 아니라, 숫자위한 좋은 지원을

    나는 몇 CSS의 비틀기와 더불어, IE6 환경에서 사용하고, 합리적인 성공했다.

    예를 들어, CSS 클래스 numericInput 정의 할 수 있으며, 숫자 입력 마스크로 필드를 장식하는 데 사용할 수 있습니다.

    autoNumeric 웹 사이트에서 적응 :

    $('input.numericInput').autoNumeric({aSep: '.', aDec: ','}); // very flexible!
    

  20. 20.당신이 HTML5를 사용하는 경우에는 유효성 검사를 수행 할 수있는 훌륭한 길이에 갈 필요가 없습니다. 그냥 사용 -

    당신이 HTML5를 사용하는 경우에는 유효성 검사를 수행 할 수있는 훌륭한 길이에 갈 필요가 없습니다. 그냥 사용 -

    <input type="number" step="any" />
    

    단계 속성은 소수점이 유효 할 수 있습니다.


  21. 21.나는이이 문제를 해결하는 좋은 방법이며 매우 간단합니다 생각 :

    나는이이 문제를 해결하는 좋은 방법이며 매우 간단합니다 생각 :

    $(function() {
        var pastValue, pastSelectionStart, pastSelectionEnd;
    
        $("input").on("keydown", function() {
            pastValue          = this.value;
            pastSelectionStart = this.selectionStart;
            pastSelectionEnd   = this.selectionEnd;
        }).on("input propertychange", function() {
            var regex = /^[0-9]+\.?[0-9]*$/;
    
            if (this.value.length > 0 && !regex.test(this.value)) {
                this.value          = pastValue;
                this.selectionStart = pastSelectionStart;
                this.selectionEnd   = pastSelectionEnd;
            }
        });
    });
    

    예 : JSFiddle

    시나리오 적용

    대부분의 유사한 권고 사항은 여기에 이들 중 적어도 하나를 실패하거나 이러한 모든 시나리오를 충당하기 위해 많은 코드를 필요로합니다.

    시나리오 실패

    플러그인

    나는이 쉽게하기 위해 플러그인이 간단한 jQuery를 만든 :

    $("input").limitRegex(/^[0-9]+\.?[0-9]*$/);
    

  22. 22.가장 좋은 방법은이 포커스를 잃을 때마다 텍스트 상자의 내용을 확인하는 것입니다.

    가장 좋은 방법은이 포커스를 잃을 때마다 텍스트 상자의 내용을 확인하는 것입니다.

    당신은 내용이 정규 표현식을 사용하여 "번호"여부를 확인할 수 있습니다.

    또는 당신은 기본적으로이 작업을 자동으로 수행 유효성 검사 플러그인을 사용할 수 있습니다.


  23. 23.데이터베이스 사용이 발견 코드를 확인 :

    데이터베이스 사용이 발견 코드를 확인 :

    function numonly(root){
        >>var reet = root.value;
        var arr1 = reet.length;
        var ruut = reet.charAt(arr1-1);
        >>>if (reet.length > 0){
            var regex = /[0-9]|\./;
            if (!ruut.match(regex)){
                var reet = reet.slice(0, -1);
                $(root).val(reet);
            >>>>}
        }
    }
    //Then use the even handler onkeyup='numonly(this)'
    

  24. 24.이것은 내가 그냥 (jQuery를이 필요)를 텍스트 필드에 정수 %의 검증 (피터 모텐슨 / 키스 Bentrup하여 코드의 일부를 사용) 한 적이 코드 조각입니다 :

    이것은 내가 그냥 (jQuery를이 필요)를 텍스트 필드에 정수 %의 검증 (피터 모텐슨 / 키스 Bentrup하여 코드의 일부를 사용) 한 적이 코드 조각입니다 :

    /* This validates that the value of the text box corresponds
     * to a percentage expressed as an integer between 1 and 100,
     * otherwise adjust the text box value for this condition is met. */
    $("[id*='percent_textfield']").keyup(function(e){
        if (!isNaN(parseInt(this.value,10))) {
            this.value = parseInt(this.value);
        } else {
            this.value = 0;
        }
        this.value = this.value.replace(/[^0-9]/g, '');
        if (parseInt(this.value,10) > 100) {
            this.value = 100;
            return;
        }
    });
    

    이 코드 :

    나는이 필요한 사람들을 도움이되기를 바랍니다.


  25. 25.여기에 훌륭한 솔루션 http://ajax911.com/numbers-numeric-field-jquery/ 발견

    여기에 훌륭한 솔루션 http://ajax911.com/numbers-numeric-field-jquery/ 발견

    난 그냥 내 요구 사항에 따라 "를 keyDown"에 "의 keyup을"로 변경


  26. 26.입력에 캐럿 위치를 유지하는 다른 방법 :

    입력에 캐럿 위치를 유지하는 다른 방법 :

    $(document).ready(function() {
      $('.numbersOnly').on('input', function() {
        var position = this.selectionStart - 1;
    
        fixed = this.value.replace(/[^0-9\.]/g, '');  //remove all but number and .
        if(fixed.charAt(0) === '.')                  //can't start with .
          fixed = fixed.slice(1);
    
        var pos = fixed.indexOf(".") + 1;
        if(pos >= 0)
          fixed = fixed.substr(0,pos) + fixed.slice(pos).replace('.', '');  //avoid more than one .
    
        if (this.value !== fixed) {
          this.value = fixed;
          this.selectionStart = position;
          this.selectionEnd = position;
        }
      });
    });
    

    장점 :

    Plunker : 데모 작업


  27. 27.난 그냥 더 나은 플러그인을 발견했다. 당신에게 더 많은 제어를 제공합니다. "-"자 당신은 당신이 그것을 숫자로해야 할뿐만 아니라, "/"또는 받아들이는 DOB 필드가 말한다.

    난 그냥 더 나은 플러그인을 발견했다. 당신에게 더 많은 제어를 제공합니다. "-"자 당신은 당신이 그것을 숫자로해야 할뿐만 아니라, "/"또는 받아들이는 DOB 필드가 말한다.

    그것은 잘 작동합니다!

    http://itgroup.com.ph/alphanumeric/ 그것을 확인하십시오.


  28. 28.

        $(".numeric").keypress(function(event) {
      // Backspace, tab, enter, end, home, left, right
      // We don't support the del key in Opera because del == . == 46.
      var controlKeys = [8, 9, 13, 35, 36, 37, 39];
      // IE doesn't support indexOf
      var isControlKey = controlKeys.join(",").match(new RegExp(event.which));
      // Some browsers just don't raise events for control keys. Easy.
      // e.g. Safari backspace.
      if (!event.which || // Control keys in most browsers. e.g. Firefox tab is 0
          (49 <= event.which && event.which <= 57) || // Always 1 through 9
          (48 == event.which && $(this).attr("value")) || // No 0 first digit
          isControlKey) { // Opera assigns values for control keys.
        return;
      } else {
        event.preventDefault();
      }
    });
    

    이 코드는 나에게 꽤 좋은 일을 내가하지 그것을 할 수있는 가장 좋은 방법은 생각 할 수 있지만, 난 그냥 기간을 사용하도록 controlKeys 배열의 (46)를 추가했다)


  29. 29.나는 좋은 결과와 함께,이 사용 ..

    나는 좋은 결과와 함께,이 사용 ..

    ini=$("#id").val();
    a=0;
    $("#id").keyup(function(e){
        var charcode = (e.which) ? e.which : e.keyCode;
        // for decimal point
        if(!(charcode===190 || charcode===110))
        {           // for numeric keys andcontrol keys
            if (!((charcode>=33 && charcode<=57) || 
            // for numpad numeric keys
            (charcode>=96 && charcode<=105) 
            // for backspace
            || charcode==8)) 
            {
                alert("Sorry! Only numeric values allowed.");
                $("#id").val(ini);
            }
            // to include decimal point if first one has been deleted.
            if(charcode===8)
            {
                ini=ini.split("").reverse();
                if(ini[0]==".")
                a=0;                 
            }
        }
        else
        {
            if(a==1)
            {
                alert("Sorry! Second decimal point not allowed.");
                $("#id").val(ini);
            }
            a=1;
        }
        ini=$("#id").val();
    });
    
    
    find keycodes at http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
    

  30. 30.이것은 우리가 이미 자바 스크립트 붙박이 기능 "때는 isNaN는"이 가지고 매우 간단합니다.

    이것은 우리가 이미 자바 스크립트 붙박이 기능 "때는 isNaN는"이 가지고 매우 간단합니다.

    $("#numeric").keydown(function(e){
      if (isNaN(String.fromCharCode(e.which))){ 
        return false; 
      }
    });
    
  31. from https://stackoverflow.com/questions/891696/jquery-what-is-the-best-way-to-restrict-number-only-input-for-textboxes-all by cc-by-sa and MIT license