2017-03-19 2 views
-1

Ich brauche nur Englisch Art in Eingang, fügen Sie Funktion für diesen Eingang:Wie man einfach Englisch in Eingabe eingibt?

function englishType() { 
    $('input[lang^=en]').keypress(function(event){ 
     var ew = event.which; 
     if(ew == 32) 
      return true; 
     if(48 <= ew && ew <= 57) 
      return true; 
     if(65 <= ew && ew <= 90) 
      return true; 
     if(97 <= ew && ew <= 122) 
      return true; 
     alert("error"); 
     return false; 
    }); 
} 

Aber Benutzer können تست (jedes Wort in einer anderen Sprache) und fügen Sie sich auf diesem Eingang und nicht funktionieren, diesen Code kopieren!

.keypress funktioniert nicht für Copy and Paste.

Wie kann ich reparieren?

+5

Seien Sie nicht so blasiert darüber, welche Zeichen Sie akzeptieren. Ich bekomme ein Déjà-vu von den Problemen, denen Sie gegenüberstehen. Wenn du denkst, dass das alles ist, was du brauchst, dann bist du leider ziemlich naiv. –

+0

Hallo @NiettheDarkAbsol, Nein! Ich brauche nur Englisch einzugeben. Der Benutzer kann ein anderes Schlüsselwort in die Eingabe kopieren und einfügen. und arbeite diesen Code nicht. Wie kann ich isses? – mySun

+0

Gibt es dieses Eingabefeld in einem Formular? Wenn ja, können Sie die jQuery-Validierung verwenden, um dieses Formular zu validieren. @ MySun –

Antwort

1

Zuerst müssen Sie das keyup Ereignis und nicht das keypress verwenden.

Zweitens, wenn Sie verhindern möchten, dass die Benutzer nicht-englische Zeichen einfügen, müssen Sie alle event.target.value-Zeichen verarbeiten, die Sie nicht möchten, oder einen Fehler auslösen, was auch immer der Fall sein mag. Sie können Regex dafür verwenden; Bereich [a-zA-Z ] sollte gut funktionieren. Sie können dies mit anderen Charakteren ergänzen, die Sie zulassen möchten.

event.target.value.match(/[^a-zA-Z ]/) // Array if value outside the range 

Drittens wie die anderen Kommentare sagen, Sie sind viele englische Wörter, wie Résumé zum Beispiel zu beschränken, so dass dies nicht unbedingt eine gute Idee. Aber Ihr Anwendungsfall kann anders sein.

+0

Hi 'keyup' Ereignis nicht gut, da' backspace' ausgeführt wird 'keyup' Ereignis – mySun

+0

** Alle Schlüssel feuern das' keyup' Ereignis. ** Plus, wenn der Benutzer den Text einfügt, basierend auf 'event.keyCode 'wird nicht helfen, weil der charCode der Control-Taste oder 17 ist, und Sie hätten den Benutzer grundsätzlich deaktiviert, um sogar Strg + A oder eine andere Kombination zu verwenden. – gargsms

Verwandte Themen