kostenloser Webspace werbefrei: lima-city


bei Formulareingabe nur Zahlen zulassen ?

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    soboo

    soboo hat kostenlosen Webspace.

    Hallo

    wie kann ich für eine Formular-EIngabe (in ein Text-Feld)
    schon bei (während) der Eingabe nur Zahlen zulassen ?

    <input type="text" name="pricemax" size="6" maxlength="6" />


    so, dass auch kein Punkt oder Komma eingetragen werden kann,
    sondern nur max 6 Ziffern 0 bis 9 (bzw. Ganz-Zahlen von 0 bis 999999)

    Idee:
    mit JS die Eingabe je Zeichen prüfen, wenn nicht Zahl 0-9, dann dieses Zeichen löschen
    ... also nicht mit Meldung: alert('Bitte nur Ziffern 0-9 eingeben'); sondern einfach nicht zulassen.

    geht das ?

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ja das geht :)

    function validate(evt) {
      var theEvent = evt || window.event;
      var key = theEvent.keyCode || theEvent.which;
      key = String.fromCharCode( key );
      var regex = /[0-9]|\./;
      if( !regex.test(key) ) {
        theEvent.returnValue = false;
        if(theEvent.preventDefault) theEvent.preventDefault();
      }
    }


    Und dann noch das Event dem Input hinzufügen:
    onkeypress='validate(event)'
  4. Autor dieses Themas

    soboo

    soboo hat kostenlosen Webspace.

    habe es ausprobiert,
    Dein Script in den HTML <head> Bereich und

    <input type="text" name="pricemax" size="6" maxlength="6" onkeypress="validate(event);" />

    funktioniert aber leider nicht

    auch nicht, wenn ich validate(this) oder validate(pricemax) mache

    ich frage mich auch woher test(key) kommt, ist test eine vordefinierte JS Funktion ?

    und das hier:

    if(theEvent.preventDefault) theEvent.preventDefault();

    .... beisst sich doch in den Schwanz ?!
    Event Aufruf wenn Event aufgerufen Ist ? ... hä?

    ich habe noch mal ein bischen gegoogelt und dann das hier gefunden

    <script type="text/javascript">
    
    function validate_num(formdata) {
      formdata.value=formdata.value.replace(/\D/, '' );
    }
    
    </script>


    <input type="text" name="pricemax" size="6" maxlength="6" onkeyup="validate_num(this);" />


    damit geht es

    und onkeyup ist denke ich besser, weil bei Test mit onkeypress
    blieb der zuletzt eingetragene Buchstabe noch im Feld, nur vorlezter wurde entfernt

  5. Noch eine weitere Möglichkeit:
    var check = function(e,t) {
    			var kC = (e.which) ? e.which : event.keyCode;
    			if(kC > 31 && (kC < 48 || kC > 57)) {
    				t.className = 'invalid';
    				return false;
    			} else t.className = 'valid';
    		};

    Dadurch ist es (im Gegensatzt zu der vorher geposteten Variante, bei der Buchstaben nachträglich entfernt werden) gar nicht möglich, einen Buchstaben einzugeben. (Im Die gedrückte Taste wird abgefragt und nur wenn Zahl, wird die Ziffer »eingefügt«).

    Unter http://bit.ly/zBRiKb ist eine Demo mit verschiedenen Möglichkeiten zu finden, nur Ziffern zuzulassen. (Es könnte allerdings sein, dass diese im Moment aufgrund von den Wartungsarbeiten nicht aufzurufen ist.)


    Till
  6. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    tillpro schrieb:
    Noch eine weitere Möglichkeit:
     		var check = function(e,t) {
    			var kC = (e.which) ? e.which : event.keyCode;
    			if(kC > 31 && (kC < 48 || kC > 57)) {
    				t.className = 'invalid';
    				return false;
    			} else t.className = 'valid';
    		};
    Warum musst du in der if-Abfrage extra
    (kC > 31)
    abfragen?
    Es würde doch so auch reichen:
    if(kC < 48 || kC > 57) {
  7. Stimmt eigentlich. Aber so werden noch Lee:smokin:rzeichen unterbunden
  8. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    tillpro schrieb:
    Stimmt eigentlich. Aber so werden noch Lee:smokin:rzeichen unterbunden
    Also wenn du diese
    kC > 31
    drinnen hast sind alle Zeichen mit einem ASCII-Wert < 32 erlaubt! Das ist definitiv nicht das was gewünscht wird. Zeichen wie das hier: ♪ oder ♫ sind also Zahlen (ASCII-Wert < 32)?
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!