HP-User: IndexOf-Problem

Hallo Forumsleser

Ich kämpfe momentan noch mit einer JavaSkript-Anweisung, die nicht funktionieren will.

Die Seite (noch im Entwicklungsstadium) ist diese.

Wenn ich bei Name nichts einfüge, kommt die Alert-Meldung Name vergessen. Das ist gut so. Wenn ich "EZ-Team" einfüge, kommt keine Alert-Meldung. Das ist schlecht, da ich eine erwarte.

Der Code...

Prüft auf leere Eingabe:
---------------------------
if (document.selfautor.nick.value == "") {
    alert("Bitte geben Sie einen Namen oder ein Pseudonym an!");
    document.selfautor.nick.focus();
    return false;
  }

Prüft ob Eingabe gleich ist wie "EZ-Team":
---------------------------
if (document.selfautor.nick.value.indexOf("EZ-Team") == -1) {
    alert("Der Name EZ-Team ist für die Redaktion reserviert und daher nicht möglich!");
    document.selfautor.nick.focus();
    return false;
  }

Zweites funktioniert nicht! Egal ob ich "-1" oder "1" verwende.
Natürlich wird dieses Namensfeld auch noch mal im Perl serverseitgg geprüft werden. Es wäre aber trotzdem schön, wenn man es ebenfalls im JS abfragen könnte.

Gruss

HP-User

  1. Hallo,

    Prüft ob Eingabe gleich ist wie "EZ-Team":

    if (document.selfautor.nick.value.indexOf("EZ-Team") == -1) {

    Diese Anweisung fragt ab, ob der String "EZ-Team" NICHT im String document.selfautor.nick.value vorkommt. Schau dir mal die Referenz zu http://de.selfhtml.org/javascript/objekte/string.htm#index_of@title=indexOf an.

    -1 bedeutet: kommt nicht vor. 0 oder ein positiver Wert bedeutet, der "EZ-Team" kommt im anderen String an dieser Stelle (diesem Index) vor.

    Du kannst beispielsweise
    if (document.selfautor.nick.value.indexOf("EZ-Team") > -1) {
    verwenden, um zu prüfen, ob der EZ-TEam in der Eingabe vorkommt (ich denke, das hast du vor).

    Grüße,
    Mathias

    1. Hi molily

      -1 bedeutet: kommt nicht vor. 0 oder ein positiver Wert bedeutet, der "EZ-Team" kommt im anderen String an dieser Stelle (diesem Index) vor.

      I hate JavaScript ;-) Ich kannte basic, ich kenne Perl, selbst mit Makros (VBA) hab ich ab und an zu tun. Aber dieses elendige JS hat für mein Hirni einfach eine unmögliche Syntax. Ich seh mich schon zur VHS rennen, einen Noob-Kursus besuchen mit dem Titel "JavaSkript für unterbelichtete" - jetzt im Sonderangebot! ;-)

      Du kannst beispielsweise
      if (document.selfautor.nick.value.indexOf("EZ-Team") > -1) {
      verwenden, um zu prüfen, ob der EZ-TEam in der Eingabe vorkommt (ich denke, das hast du vor).

      Da hast du richtig gedacht. Und schon wieder gebührt dir mein Dank!

      Soweit so gut! Ich mach mal Pause. Heut abend gehts dann mit dem PerlSkript weiter. Klink mich aus - Danke nochmal.

      Gruss HP-User

      1. Hi,

        -1 bedeutet: kommt nicht vor. 0 oder ein positiver Wert bedeutet, der "EZ-Team" kommt im anderen String an dieser Stelle (diesem Index) vor.

        I hate JavaScript ;-) Ich kannte basic, ich kenne Perl, selbst mit Makros (VBA) hab ich ab und an zu tun.

        Und ganz elementares Debugging hast du in keiner dieser Sprachen gelernt …?

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. @@HP-User:

    nuqneH

    Natürlich wird dieses Namensfeld auch noch mal im Perl serverseitgg geprüft werden. Es wäre aber trotzdem schön, wenn man es ebenfalls im JS abfragen könnte.

    Wäre es das?

    Es _ist_ schön, dass man das ebenfalls im HTML abfragen kann. Ohne JavaScript.

    Qapla'

    --
    Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
    1. Es _ist_ schön, dass man das ebenfalls im HTML abfragen kann. Ohne JavaScript.

      Schön ist es in jedem Fall, aber wie das mit schönen Dingen so ist - sie funktionieren nicht im IE und in diesem Fall auch nicht im Safari. Javascript könnte man hier als Fallback-Lösung einsetzen.

      1. Hallo 1UnitedPower.

        sie funktionieren nicht im IE

        Zumindestens nicht in IE < 10, sagt caniuse.com.

        Servus,
        Flo

      2. @@1UnitedPower:

        nuqneH

        Schön ist es in jedem Fall, aber wie das mit schönen Dingen so ist - sie funktionieren nicht im IE und in diesem Fall auch nicht im Safari.

        ?? Von welchem Safari sprichst du?

        Und kannst du mir bitte einen Gefallen tun und nie wieder auf w3schools verlinken? Danke.

        Javascript könnte man hier als Fallback-Lösung einsetzen.

        Das sagte ich bereits im verlinkten Posting. Wenn man den Aufwand denn noch betreiben will. Serverseitig muss man ja sowieso prüfen; und das tut der OP auch bereits.

        Qapla'

        --
        Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
        1. ?? Von welchem Safari sprichst du?

          Hab die Information einfach von w3schools übernommen ohne noch weitere Recherchen anzustellen.

          Und kannst du mir bitte einen Gefallen tun und nie wieder auf w3schools verlinken? Danke.

          Danke für den Hinweis. Werde ich beherzigen.

          Grüße
          -1UnitedPower

  3. nerviger Spamschutz. Würde ich weglassen.

    1. Hi Terminator

      nerviger Spamschutz. Würde ich weglassen.

      Zur Info:Der ist nur ein Überbleibsel aus einem anderem Quellcode. Das wird noch geändert. Werde aber vermutlich keine Captchers oder wie das heisst verwenden. Mir schwebt da eher so eine Frage- Antwort Geschichte vor.

      Mal schauen. Gruss HP-User

      1. Hi Terminator und alle anderen Mitleser

        nerviger Spamschutz. Würde ich weglassen.

        Zur Info:Der ist nur ein Überbleibsel aus einem anderem Quellcode. Das wird noch geändert.Mir schwebt da eher so eine Frage- Antwort Geschichte vor.

        So, nun ist ist Spamschutz-Abfrage fertig. Ich hoffe der Terminator kann mit dieser Lösung besser leben :-)

        An dieser Stelle die Frage in die Runde:

        Ist die Spamschutzabfrage verständlich? Ich hab sie stark vereinfacht. Ist klar, was man machen soll bzw. was in das Feld einzugeben ist? Unter diesem Link bitte testen...

        Testobjekt

        Gruss HP-User

        PS: Einträge könnt ihr keine machen, weil das Eintragsskript gerade erstellt wird und somit noch nicht fertig sein kann. Also hier geht es nur um das dynamisch generierte Formular und seine Verständlichkeit.

        1. Zur Ergänzung

          Durch drücken auf den Reloadknopf im Browser müsste sich die Tierart zufällig ändern.

          Gruss HP-User