tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
5310
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von kevkev
    kevkev kevkev ist offline Mitglied Platin
    Registriert seit
    Feb 2004
    Beiträge
    620
    Hi,

    Ich hab ein Formular in dem man Zahlen einfügen muss.
    Da ich es aber zu umständlich finde, erst nach dem "senden" button zu üerprüfen, ob es wirklich zahlen sind. will ich das über js machen.
    Es soll so :
    Wenn jemand ein anderes zeichen als eine zahl eintippt, soll diese zeichen einfach nicht erscheinen. wie bei den "ok" feld von dialern, da kann auch nur "o" und "k" eingetippt werden.

    Weiß da jemand was?

    Gruß kevin
     

  2. #2
    Avatar von Jerinca
    Jerinca Jerinca ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    109
    Hallo!

    Ich weiß nicht, ob es dafür eine einfachere Methode gibt, aber spontan würde mir folgendes einfallen:

    Im Textfeld machst Du einen EventHandler onKeyUp, der eine kleine Funktion auslöst.

    Und in dieser Funktion überprüfst Du dann, ob gerade eine Zahl eingegeben worden ist, oder eben nicht.

    Mein Vorschlag (getestet und für gut befunden ):
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    <form name="form1">
    <input type="text" name="zahlenfeld" value="" maxlength="5" onKeyUp="zahl()">
    ...
    <script language = "javascript">
    function zahl() {
    if (document.form1.zahlenfeld.value < "0" || "9" < document.form1.zahlenfeld.value)  {
        document.form1.zahlenfeld.value = "";
        document.form1.zahlenfeld.focus();
        return false;
        }
    }
    </script>
    Wichtig ist das onKeyUp! Mit onKeyDown geht es nämlich nicht! Formularname und Feldname mußt Du natürlich noch an Deine Daten anpassen...

    Hoffe, Dir geholfen zu haben
     

  3. #3
    Avatar von kevkev
    kevkev kevkev ist offline Mitglied Platin
    Registriert seit
    Feb 2004
    Beiträge
    620
    Hey Danke

    Genau sowas hab ich gesucht! Jetzt kann mein projekt weitergehen !

    Gruß kevin
     

  4. #4
    Avatar von kevkev
    kevkev kevkev ist offline Mitglied Platin
    Registriert seit
    Feb 2004
    Beiträge
    620
    Hi,

    Bei mir funktioniert das als einzelene html-date recht gut, aber wenn ich es in meine html einbaue funtz es nicht:

    Der name des feldes ist "feld1_breite".
    Das Feld ist ca. in der mitte der seite.
    <script language="javascript">
    function zahl() {
    if (document.form1.feld1_breite.value < "0" || "9" < document.form1.feld1_breite.value) {
    document.form1.feld1_breite.value = "";
    document.form1.feld1_breite.focus();
    return false;
    }
    }
    </script>

    Kannst du mir helfen?

    gruß kevin
     

  5. #5
    Avatar von Jerinca
    Jerinca Jerinca ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    109
    Leider muß ich Deine Freude wieder dämpfen

    Ich war mal wieder zu übereifrig und voreilig!

    Vielleicht hast Du selbst schon bemerkt, daß mein erstes Script noch 2 Bugs hat: Es klappt nur, wenn das erste eingegebene Zeichen ein Buchstabe o.ä. ist. Wenn Du zuerst eine Zahl eingibst und dann einen Buchstaben... na, dann klappt's nicht mehr...

    Was Du brauchst, ist noch eine for-Schleife mit einem Substring, der gewährleistet, daß immer jedes zeichen überprüft wird, und einen Substring, der im Fall einer "Nichtzahl" diese wieder abschneidet:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    <script language = "javascript">
    function zahl() {
    var zahl = document.form1.zahlenfeld;
        [B]for (var i = 0; i < zahl.value.length; i++) {
            var z = zahl.value.substring(i, i + 1);[/B]
            if (z < "0" || "9" < z)  {
                [B]var zahl2 = zahl.value.substring(0, zahl.value.length-1);
                zahl.value = zahl2;[/B]
                zahl.focus();
                return false;
            }
        [B]}[/B]
    }
    </script>

    Sorry, daß ich nur eine halbfertige Funktion gepostet habe leider hatte ich nicht genügend getestet...

    Aber nun sollte es *hoffentlich* funktionieren (aber mit Versprechen - wie beim letzten Mal - bin ich diesmal vorsichtig )

    Bis dann, Jerinca
     

  6. #6
    Avatar von Jerinca
    Jerinca Jerinca ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    109
    Hallo nochmal!

    Ui, da haben wir wohl zeitlich aneinander vorbeigeschrieben...

    Also, erstmal nimmst Du jetzt lieber meine zuletzt gepostete Funktion.

    Ansonsten sieht das alles ganz gut aus...

    Könnte es vielleicht sein, daß Du gar kein Formular innerhalb Deines HTML-Tag-Paares hast oder Deins einen anderen Namen hat?

    Solltest Du kein Formular haben oder eins, das nicht "form1" heißt, dann geht's natürlich nicht... Ach ja, zu einem <form name="xyz"> gehört natürlich immer auch ein </form>

    Was anderes fällt mir so nicht ein... Hast Du vielleicht eine spezielle Fehlermeldung bekommen? Dann poste die gleich mal mit

    Bis denn dann...
     

  7. #7
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Schaut mal hier hinein... es geht auch mit einem schlichten Einzeiler
     

  8. #8
    Registriert seit
    Aug 2003
    Ort
    Dresden
    Beiträge
    527
    Noch größere Flexibilität erreicht man mit Regular Expressions
     

  9. #9
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Eine Zahl ist mit RegExp genauso flexibel wie ohne, denke ich ... garnicht
     

  10. #10
    Registriert seit
    Aug 2003
    Ort
    Dresden
    Beiträge
    527
    Zitat Zitat von Sven Mintel
    Eine Zahl ist mit RegExp genauso flexibel wie ohne, denke ich ... garnicht
    Die Flexibilität bezog sich auf die Prüfungen, z.B. auf bestimmte Ziffern an bestimmter Stelle, Länge, etc.
     

  11. #11
    Avatar von con-f-use
    con-f-use con-f-use ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Oct 2004
    Ort
    München / Innsbruck
    Beiträge
    2.263
    @Sven:
    Bei deiner Methode gibt's aber ein kleines Problem, denn im Netscape und im Mozilla kann man dann einmal gemachte Eingaben nicht mehr löschen, weil das <input>-Feld nicht mehr auf [Backspace] oder [Etnf] reagiert.
     
    Wäre der Satz "Ich möchte auf meinem Fisch-und-Chips-Schild einen Bindestrich zwischen die Wörter Fisch und und und und und Chips machen" nicht deutlicher, wenn Anführungszeichen vor Fisch und zwischen Fisch und und und und und und und und und und und und und und und und und und und und und Chips und auch nach Chips wären?

    | Meine Homepage: Forschung, unethische | Meine Seite mit viel verlangten Javascrits |

    -----------

    Zufriedenstellende Beiträge bitte als erledigt markieren!


  12. #12
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Warum... man kann das Ganze doch markieren, und dann ne andere Zahl eingeben
     

  13. #13
    Avatar von con-f-use
    con-f-use con-f-use ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Oct 2004
    Ort
    München / Innsbruck
    Beiträge
    2.263
    Schon, aber es ist doch etwas irritierend, wenn man weder entf noch backspace benutzen kann...
     
    Wäre der Satz "Ich möchte auf meinem Fisch-und-Chips-Schild einen Bindestrich zwischen die Wörter Fisch und und und und und Chips machen" nicht deutlicher, wenn Anführungszeichen vor Fisch und zwischen Fisch und und und und und und und und und und und und und und und und und und und und und Chips und auch nach Chips wären?

    | Meine Homepage: Forschung, unethische | Meine Seite mit viel verlangten Javascrits |

    -----------

    Zufriedenstellende Beiträge bitte als erledigt markieren!


Ähnliche Themen

  1. Textfeld nur Nummern zulassen
    Von Xo-mate im Forum .NET Archiv
    Antworten: 8
    Letzter Beitrag: 21.08.09, 15:16
  2. Nur Zahlen Zulassen
    Von ganjin im Forum .NET Windows Forms
    Antworten: 10
    Letzter Beitrag: 06.09.08, 16:49
  3. Antworten: 3
    Letzter Beitrag: 25.09.05, 14:03
  4. Nur bestimmte Tasten in einer Component zulassen (Textfeld)
    Von Vatar im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 7
    Letzter Beitrag: 19.04.05, 13:36
  5. Nur Zahlen zulassen
    Von fhr im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 10.03.04, 08:16