tutorials.de Buch-Aktion 05/2012
RSS-Feed anzeigen

Stammtisch

[Javascript]:Tastatureingaben in Textfelder abfangen

Bewerten
von Sven Mintel am 21.04.10 um 14:25 (1310 Hits)
Öfters kommen mal Fragen, wie man bestimmte Zeicheneingaben in Textfelder verhindern kann.

Hier eine von mehreren Möglichkeiten:
  • Was:
    Fängt Tastatureingaben in Textfelder ab und kann sie bei Bedarf canceln oder durch etwas anderes ersetzen
  • Wo:
    onkeypress-Event des Textfeldes
  • Wer:
    Habs getestet in
    • IE 6-7
    • Firefox
    • Chrome
    • Opera
    • Safari
  • Wie:
    Beispielcode
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; 
                                    charset=ISO-8859-1"   />
    <meta name="author"             content="doktormolle" />
    <meta name="date"               content="2010-04-21" />
    <title>Test</title>
    <script type="text/javascript">
    <!--
     
    /**
      * function fx
      * 
      * Verhindert Eingabe bestimmter Zeichen in Formularfelder per Key-Event
      * Optional: Ersetzen der Zeichen    
      *     
      * @param  object         e KEY-Event
      * @param  object|integer p regulärer Ausdruck oder KeyCode
      * @param  string         r OPTIONAL Replacement    
      * @return boolean        
      **/
    function fx(e,p,r)
    {
      var key=(e.charCode)?e.charCode:e.keyCode;  
      if(
          (!isNaN(p) && p==key)
            ||
          
          (isNaN(p) && !p.test(String.fromCharCode(key)))
        )
      {
        if(r)
        {
          try{//IE
              document.selection.createRange().text=r;
             }
          catch(x)
          {//andere
            var o         = e.target
            var intStart  = o.selectionStart;
            var intEnd    = o.selectionEnd;
            o.value = (o.value).substring(0, intStart) + r + (o.value).substring(intEnd, o.value.length);
                        o.selectionStart=o.selectionEnd=intStart+r.length;
                        o.focus();
          }  
        }
        return false;
      }
      return true;
    }
     
     
    //-->
    </script>
    </head>
    <body>
     
    <input onkeypress="return fx(event,/[\d]/)">nur Zahlen<br/>
    <input onkeypress="return fx(event,/[^\d]/)">keine Zahlen<br/>
    <input onkeypress="return fx(event,/[a-z]/i)">nur Buchstaben A-Z<br/>
    <input onkeypress="return fx(event,8364,'EURO')">kein &euro;<br/>
    </body>
    </html>

"[Javascript]:Tastatureingaben in Textfelder abfangen" bei Twitter speichern "[Javascript]:Tastatureingaben in Textfelder abfangen" bei Facebook speichern

Kommentare