it-swarm.com.de

Deaktivieren Sie einige Zeichen aus dem Eingabefeld

Ich habe einige ähnliche Anweisungen gefunden, aber keine hilft, alle sind entweder für Sonderzeichen oder für Ziffern.

Ich brauche nur einen Benutzertyp 1, 2, 3, 4, 5, N, O, A, B, C. Alle anderen Zeichen sollten eingeschränkt sein.

Wie kann ich meine eingeschränkten/zulässigen Zeichen für Eingaben selbst auswählen?

  • Nicht sehr vertraut mit Javascript.
14
Nutic

Versuche dies

$(function(){
  $('#txt').keypress(function(e){
    if(e.which == 97 || e.which == 98 || e.which == 99 || e.which == 110 || e.which == 111 || e.which == 65 || e.which == 66 || e.which == 67 || e.which == 78 || e.which == 79 || e.which == 49 || e.which == 50 || e.which == 51 || e.which == 52 || e.which == 53){
    } else {
      return false;
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' id='txt' value='' onpaste="return false" />

Update 9. März 2018

$(function(){
  $('#txt').keypress(function(e){
    // allowed char: 1 , 2 , 3, 4, 5, N, O, A, B, C
    let allow_char = [97,98,99,110,111,65,66,67,78,79,49,50,51,52,53];
    if(allow_char.indexOf(e.which) !== -1 ){
      //do something
    }
    else{
      return false;
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' id='txt' value='' onpaste="return false" />

12

mit JQuery,

$("input").keypress( function(e) {
    var chr = String.fromCharCode(e.which);
    if ("12345NOABC".indexOf(chr) < 0)
        return false;
});

ohne JQuery

document.getElementById("foo").onkeypress = function(e) {
    var chr = String.fromCharCode(e.which);
    if ("12345NOABC".indexOf(chr) < 0)
        return false;
};

Für einen Liner von @mplungjan und @ matthew-locks Kommentar 

document.querySelector("#foo").onkeypress = function(e) {
    return "12345NOABC".indexOf(String.fromCharCode(e.which)) >= 0;
};
27
allenhwkim

Es ist nicht 100% ig klar, ob Sie das übermittelte Formular mit ungültigen Werten einschränken oder den Benutzer buchstäblich daran hindern möchten, diese Werte auch nur einzugeben. Die anderen Antworten befassen sich mit letzterem, und ich denke, dass ist das, was Sie meinten, aber es werden Leute hier ankommen (wie ich), die nur die Übermittlung von Formularen verhindern wollen.

In welchem ​​Fall:

Verwenden Sie das pattern -Attribut für das input -Element:

<input pattern="[REGEX HERE]">

https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Form_validation

https://regex101.com/

2
andydavies

Wenn Sie ein paar Zeichen aus dem Eingabefeld deaktivieren möchten, können Sie Folgendes tun:

<input type="text" onkeydown="return (event.keyCode!=86);"/>

86 ist der Code für V. Überprüfen Sie den Code für andere Schlüssel über den folgenden Link.

https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

1
Abdul Malik

html

<input type="text" name="" value="" id="testr">
<script type="text/javascript" src="testkeydown.js"></script>

javascript

document.getElementById('testr').addEventListener('keydown', function(e) {
    const regex = RegExp('[0-9a-zA-Z]');

    if (!regex.test(e.key) && e.key != 'backspace') {
        e.preventDefault();
    }
});

Im obigen Codebeispiel sehen Sie einen Teil des Codes, der die meisten Zeichen deaktiviert, die nicht zwischen 0-9, a-z, A-Z in einfachen js liegen.

Wenn Sie mehr darüber erfahren möchten, können Sie mdn keydown event googeln und nach dem Morzilla-Entwicklernetzwerk suchen.

0
Armaniimus