2017-04-06 2 views
-1

Wie der Titel zu machen, sagen, dass ich einen kleinen Code Stück geschrieben haben, um herauszufinden, ob das eingegebene Zeichen eine Zahl oder ein Buchstabe und unten ist die Script-Code.Benötigen Sie die JavaScript-Funktion verfeinerte

function checkNum(i) { 
 

 
    //language=JSRegexp 
 
    var txt = i.value; 
 

 
    if (isNaN(txt)){ 
 
     document.getElementById("msg").innerHTML = "Numbers only"; 
 
     return false 
 
    }else{ 
 
     return true 
 
    } 
 

 
}
 <label for="volume">Volume:</label> 
 
     \t <input type="text" name="volume" id="volume" size="4" onkeyup="checkNum(this)" style="margin-left:23px;"> 
 
     <label for="noPl" style="margin-left: 35px;">No. of Product Lines:</label> 
 
      <input type="text" name="noPl" id="noPl" size="4" onkeyup="checkNum(this)"> 
 

 
<div id="msg"></div>

Ich habe versucht, diese mehr zu verfeinern, aber wenn ich dies ändern stoppt aus irgendeinem Grund zu arbeiten.

Was ich will, ist dies zu tun, nicht nur die Meldung an, sondern auch alle eingegebenen Zeichen aus dem Textfeld zu löschen und erlaubt nur Nummer einzugeben.

Beim derzeitigen Zustand wird es aufgefordert werden nur die Benutzer nicht zur Eingabe von Buchstaben. Ich habe hier viele andere erwähnte Methoden versucht, aber keine von ihnen war bis dahin erfolgreich.

Also, wenn kann mich auf bitte aufklären, was auch im Auge behalten zu tun bin ich noch nicht Javascripting Pro noch lernen.

+1

Können Sie nicht nur den Eingangstyp 'number' verwenden? – George

+2

Bitte suchen Sie zuerst, bevor Sie fragen – mplungjan

+0

Ich habe keine der gesuchten Abfrage war mir in der Lage, mir eine Idee zu geben, was ich tun wollte, deshalb fragte ich und es wird als ein Duplikat schön markiert. – Sand

Antwort

1

$(function() { 
 
    $('#staticParent').on('keydown', '#child', function(e){-1!==$.inArray(e.keyCode,[46,8,9,27,13,110,190])||/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/1.9.1/jquery.min.js"></script> 
 
<div id="staticParent"> 
 
\t <input id="child" type="textarea" /> 
 
</div>

1

können Sie

überprüfen
if(typeof txt == 'number' || typeof txt == 'string') {}