2017-03-22 4 views
-1

Ich benutze FireFox, um mein Skript zu testen. Mein Ziel ist es, Leerraum, Buchstaben, Rücktaste und Tab zu ermöglichen, aber aus irgendeinem Grund könnte ich meinen Code brechen und eine Nummer eingeben, die ich nicht möchte. Wie kann ich dieses Problem beheben? Das habe ich bisher. Bitte lassen Sie mich wissen, wie ich diesen Code ändern könnte, damit es so funktioniert, wie ich es möchte. verwendenNur Leerraum, Buchstaben, Rücktaste und Tab zulassen

   $(document).ready(function() { 
        $("#inputTextBox").keypress(function (event) { 
         var inputValue = event.which; 

         //Backspace ASCII = 8 
         //Tab ASCII = 9 
         if (!(inputValue >= 65 && inputValue <= 123)) { 
          if (inputValue === 8 && inputValue === 9){ 
           event.preventDefault(); 
          } 
         } 
         console.log(inputValue); 
        }); 
+0

Figur aus den keycodes für Zahlen, und schließen diejenigen – adeneo

+0

@adeneo Ich habe versucht, dass dies in Chrom gut funktioniert, aber in firefox es nicht in den Kommentaren ich die keycodes aufgeführt, aber ich weiß nicht, was ich Ich vermisse hier. – taji01

+0

@ taji01 Sie erkennen, dass es 109591 [Buchstabe] (http://www.fileformat.info/info/unicode/category/index.htm) Zeichen in 6 Kategorien gibt. Vielleicht meinen Sie nur die im Block [C0 Controls und Basic Latin] (http://www.unicode.org/charts/nameslist/index.html). (Falls Englisch Ihr Schwerpunkt ist, deckt dies alle Buchstaben des englischen Alphabets ab, aber nicht alle Buchstaben, die im englischen Text verwendet werden.) –

Antwort

0

Das hat bei mir funktioniert. Dies ermöglicht Buchstaben, Leerzeichen, Rücktaste und Tabulator. Ich werde es hier lassen, falls jemand es braucht.

   $(document).ready(function() { 
        $("#inputTextBox").keypress(function (event) { 
         var inputValue = event.which; 
         //Allow letters, white space, backspace and tab. 
         //Backspace ASCII = 8 
         //Tab ASCII = 9 
         if (!(inputValue >= 65 && inputValue <= 123) 
          && (inputValue != 32 && inputValue != 0) 
          && (inputValue != 48 && inputValue != 8) 
          && (inputValue != 9)){ 
           event.preventDefault(); 
         } 
         console.log(inputValue); 
        }); 
0

if (inputValue === 8 && inputValue === 9) diese Bedingung wird nie kann sowohl 8 und 9, sollten Sie nicht gleich sein, Ihre var geben ||

+0

Vielen Dank für den Kommentar. Ich habe es versucht, es lässt mich Rücktaste und Tab jedoch, wenn ich Zahlen eintippe es durchläuft. – taji01

+0

Wenn Sie nur bestimmte Schlüssel zulassen wollen, sollten Sie wahrscheinlich ein Array mit allen erlaubten Werten verwenden und das für jedes Zeichen durchlaufen, um zu sehen, ob es übereinstimmt oder nicht – jdereynal

+0

Ich werde das versuchen. Vielen Dank – taji01

Verwandte Themen