2016-10-26 19 views
0

Ich muss einen Eingabetext definieren, der nur ganze Zahlen akzeptiert.Setze ein Eingabefeld, um nur Zahlen mit jQuery zu akzeptieren

Ich versuchte mit einem regulären Ausdrücken, aber der Dezimalteil des Werts ist immer noch sichtbar.

habe ich diese Funktion:

$(document).on("input","input", function(e) { 
    this.value = this.value.replace(/[^\d\\-]/g,''); 
}) 
+0

warum nicht Typennummer verwenden? – guradio

+0

aber es akzeptiert auch dezimal (.) In Eingabe, ich nicht (.) In Eingabe benötigt. – durga

Antwort

0
Finally I solved the above issue with my requirement to type only number is 

$(document).on("input", ".skilltxt", function(e) { 
       this.value = this.value.replace(/[^\d]/g,''); 
      }); 
      $(".skilltxt").on('paste',function(e) { 

        if(gBrowser=='IE') { 
         var clipboardData, pastedData; 
         clipboardData = e.clipboardData || window.clipboardData; 
          pastedData = clipboardData.getData('Text'); 

        } 
        else if((gBrowser=='Firefox')|| (gBrowser=='Chrome')){ 
          var pastedData = (e.originalEvent || e).clipboardData.getData('text/plain'); 
          window.document.execCommand('insertText', false, pastedData) 
        } 
       if(Math.floor(pastedData) == pastedData && $.isNumeric(pastedData)){ 
        $(this).val($(this).val().replace(/[^\d]/g,'')); 
        } 
        else{ 
        return false; 
        } 
      }); 
0

Einfach und leicht zu bedienen. Versuchen Sie es: bearbeitet: rufen Sie auch in onblur Ereignis, um Paste zu verhindern.

function numOnly(selector){ 
 
    selector.value = selector.value.replace(/[^0-9]/g,''); 
 
}
<input type="text" onkeyup="numOnly(this)" onblur="numOnly(this)">

+0

Klicken mit der rechten Maustaste und Einfügen löst keine Tastenkombination aus. – Archer

+0

Danke @Archer, an die ich vorher nicht gedacht habe. Jetzt ist es behoben. Überprüfen Sie es jetzt. – AHJeebon

0

können Sie auf keydown erkennen, ob numerisch ist und Sie können den Paste Fall überprüfen, ob alle nicht-numerischen Ziffern und entfernen ist. Dieser Punkt wird ebenfalls entfernt.

Originalquelle:keydown detect: Paste remove

Dieser Code unten wurde von der ursprünglichen Quelle geändert.

Bitte versuchen:

$("#input").on("paste", function() { 
 
    setTimeout(function(){ 
 
    if ($('#input').val() != $('#input').val().replace(/\D/g,"")) 
 
    { 
 
     $('#input').val($('#input').val().replace(/\D/g,"")); 
 
    } 
 
    },10) 
 
}); 
 

 
$('#firstrow').on('keydown', '#input', function(e){-1!==$.inArray(e.keyCode,[46,8,9,27,13])||/65|67|86|88/.test(e.keyCode)&&(!0===e.ctrlKey||!0===e.metaKey)||35<=e.keyCode&&40>=e.keyCode||(e.shiftKey||48>e.keyCode||57<e.keyCode)&&(96>e.keyCode||105<e.keyCode)&&e.preventDefault()});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="firstrow"> 
 
    <input id="input" type="text"> 
 
</div>

0

Wie wäre es mit diesem?

$('input').on('input blur paste', function(){ 
 
$(this).val($(this).val().replace(/\D/g, '')) 
 
})
<input> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

Verwandte Themen