Funktion Problem IsNotDate

Dieses Thema im Forum "Webentwicklung" wurde erstellt von passi87, 14. Mai 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 14. Mai 2006
    Hi Leutz,

    ich muss eine Funktion schreiben die 3 BEdingungen erfüllen kann oder muss.

    DIese sieht so aus:

    Code:
    function erwachsene(){
     var post = buchen.anzEr.value;
     if(isNaN(post) || post.length <=0){ <!--Muss noch eingebaut werden wenn Zahl über 100 dann Fehler-->
     buchen.anzEr.className="err";
     meldung("c", "Bitte geben Sie eine Zahl zwischwen 1 und 100 ein.");
     return false;
     }
     else{
     buchen.anzEr.className="ok";
     meldung("c", "");
     }
    }
    
    Dort beim Kommentar muss jetzzt aber noch irgendwie geprüft werden ob der Wert <=100 ist.
    Wie kann man das anstellen? Immer wenn ich ein " || <=100 " schreibe sagt er Fehler.

    10er ist natürlich stanni für jeden helfer.
     
  2. 14. Mai 2006
    du musst das ausschreibenalso:

    if(isNaN(post) || post.length <=0 || post.length > 100)
     
  3. 14. Mai 2006

    aehm , bin zwar nich soo der JS -pro, aber würde post.lenght nich nur die Länge des Strings / der Zahl zurückgeben? zB bei

    30

    ne 2
    ?


    Dann müsste das doch eher so heißen:

    if(isNaN(post) || (post.lenght <= 0) || (post > 100)) ...

    oder?
     
  4. 14. Mai 2006
    yo stimmt
    hab mich eigenlich auch eher auf das was er geschrieben hat konzentriert und nicht auf den sinn des codes^^

    code müsste dann sein
    if(isNaN(post) || post.length <=0 || post > 100 || post < 1)

    obs so sinnig ist weiß ich net

    aber wenigstens siehst du wie du den inhalt checkst
     
  5. 14. Mai 2006
    hat geklappt danke, aber jetzt ein zeitws problem.

    Mit ner Datums Abfrage.

    Code:
    function isNotMail(email){
     var posAt=email.indexOf("@"),
     posAt2=email.lastIndexOf("@"),
     posPkt=email.lastIndexOf("."),
     laenge = email.length;
    
     if(posAt==-1) return true;
     if( posAt != posAt2 ) return true;
     if(posPkt==-1) return true;
     if(posAt < 3) return true;
     if(laenge - posPkt < 3) return true;
     if(posPkt - posAt < 3) return true;
    
     return false;
    }
    
    function email(){
     var w = buchen.kemail.value;
    
     if( isNotMail(w) ){
     ok = false;
     buchen.kemail.className="err";
     meldung("d","Bitte geben Sie eine richtige E-Mail Adresse ein.");
     }
     else{
     ok = true;
     buchen.kemail.className="ok";
     meldung("d", "");
     }
     return ok;
    }
    
    function isNotDate(d){
    var t,m,j;
    var posPkt1 = d.indexOf(".");
    var posPkt2 = d.lastIndexOf(".");
    
    t = d.substring(0,posPkt1);
    m = d.substring(posPkt1,posPkt2);
    j = d.substring(posPkt2);
    
    return t>0 && t<32 && m>0 && m<32 && j>0 && j<10000;
    }
    
    function datum1(){
     var s = buchen.vDatum1.value;
     
     if( isNotDate(s) ){
     ok = false;
     buchen.vDatum1.className="err";
     meldung("e","Bitte geben sie ein gültiges Datum ein.");
     }
     else{
     ok = true;
     buchen.vDatum1.className="ok";
     meldung("e","");
     }
     return ok;
    }
    Irgendwie sagt er mir bei nem richtigen Datum - Bitte richtiges Datum eingeben. Aber er prüft nur die Tage, Moinate und Jahr bleibt außen vor? Ist die Funktion überhaupt richtig?

    Danke im Vorraus
     
  6. 14. Mai 2006
    also isNotDate hat eigentlich nen falschen namen:

    aus dem return ergibt sich das es true zurück gibt wenn du tatsächlich ein datum hast und false wenn es kein datum ist

    deswegen sollte die funktion isDate heißen or so^^

    ne aber es geht darum das du in der 2ten funktion testest ob KEIN datum vorliegt jedoch gibt die funktion immer das gegenteilige aus

    dh entweder if/else vertauschen oder einfach

    if(!isNotDate(d))

    schreiben
     
  7. 14. Mai 2006
    ok cool funz soweit, bloß bezieht er nicht die Monate und das Jahr mit in die Überprüfung ein, was kann man da machen?
     
  8. 14. Mai 2006
    also:

    die stelle mit den substrings is falsch da werden die punkte net umgangen

    mach ma da das rein:

    t = d.substring(0,posPkt1-1);
    m = d.substring(posPkt1+1,posPkt2-1);
    j = d.substring(posPkt2+1);
     
  9. 14. Mai 2006
    Jetzt sagt er mir das immer falsch ist, egal ob ein richtiges oder ein Total falsche eingegebn wurde
     
  10. 14. Mai 2006
    t = d.substring(0,posPkt1);
    m = d.substring(posPkt1+1,posPkt2);
    j = d.substring(posPkt2+1);

    versuch das mal
     
  11. 14. Mai 2006
    Ok Geil, hat perfekt funktioniert. Danke an alle die geholfe haben.
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.