• Hallo Besucher!

    Du bist neu im Forum? Dann registriere dich hier, um Diskussionen beizutreten oder eigene Themen zu erstellen. Für die Registrierung ist es erforderlich, dass du einen Spielaccount bei Die Stämme hast.

    Andernfalls kannst du dich hier direkt einloggen.

    Falls du dein Passwort vergessen hast, kannst du hier ein neues Passwort anfordern.

[Veraltet] JS Frage Hilfe

DeletedUser

Gast
Hi, ich würde gerne mit Javascript eine Überprüfung machen, nach richtigkeit und ob was eingetragen ist. Die Fehler sollen sofort ausgegebne werden, das heißt sobald man aus dem textfeld rausgeht soll entweder in der Fehleranzeige kommen. Dieser Nick ist korrekt oder dein Nick ist zu kurz. Mein Formular

Code:
HTML:
<table width="550" class="q_table" cellspacing="4" cellpadding="0" align=center>
            <tr>
                <td><span class="Stil1"><img src="images/silk/user.png" /> <strong>Dein Username</strong></span></td>
              <td><input type="text" name="name"></td>
            </tr>
<tr><td>Fehler ausgabe oder Richtigkeits anzeige</td></tr>
            <tr>
                <td><span class="Stil1"><img src="images/silk/key.png" /> <strong>Passwort</strong></span></td>
              <td><input type="password" name="pass"></td>
            </tr>
<tr><td>Fehler ausgabe oder Richtigkeits anzeige</td></tr>
            <tr>
                <td><span class="Stil1"><img src="/images/silk/key_go.png" /><strong> Wiederhole dein Passwort</strong></span></td>
              <td><input type="password" name="pass_"></td>
            </tr>
<tr><td>Fehler ausgabe oder Richtigkeits anzeige</td></tr>
            <tr>
                <td><span class="Stil1"><img src="/images/silk/email.png" /> <strong>Deine Email Adresse</strong></span></td>
              <td><input type="text" name="email"></td>
            </tr>
<tr><td>Fehler ausgabe oder Richtigkeits anzeige</td></tr>
                        <tr>
                <td><span class="Stil1"><img src="imgs/tag_blue.png" />  <strong>Gebe diesen Sicherheitscode ein</strong> <img src="captcha_image.php" alt="cp" /></span></td>
              <td><input type="text" name="captcha_input"></td>
            </tr>
<tr><td>Fehler ausgabe oder Richtigkeits anzeige</td></tr>
            <tr>
                <td height="34"><span class="Stil1">Ich akzeptiere die </span><span class="Stil2"><a href="javascript:z1216382966();">ANBs</a></span></td>
                <td><input type="checkbox" name="akzept"  /></td>
            </tr>
<tr><td>Fehler ausgabe oder Richtigkeits anzeige</td></tr>
<tr><td>
    <p>
                  <label>
                  <input type="submit" name="reg" value="Anmelden">
                  </label>
                </p>
                
        </form>        </td>
    </tr>        </table>
Da wo "Fehler ausgabe oder Richtigkeits anzeige" steht soll dann die Meldung reinkommen.
Wäre dankbar um euere Hilfe da ich javascript überhaupt nicht kann :S
Lg
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser

Gast
Das funktioniert allerdings nur im FF und Opera
PHP:
<script type="text/javascript">
var minUsernameLength = 3;
var maxUsernameLength = 5;

var minPasswordLength= 3;
var maxPasswordLength = 5;


function checkUsernameLength(name)
  {
  if(username = document.getElementsByName(name)[0].value.length > maxUsernameLength)
    {
    document.getElementById(name).innerHTML = 'Dein Username ist zu lang';
    return false;
    }
  else if(username = document.getElementsByName(name)[0].value.length < minUsernameLength)
    {
    document.getElementById(name).innerHTML = 'Dein Username ist zu kurz';
    return false;
    }
  else
    {
    document.getElementById(name).innerHTML = '';
    return true;
    }
  }

function checkPasswordLength(name)
  {
  if(username = document.getElementsByName(name)[0].value.length > maxPasswordLength)
    {
    document.getElementById(name).innerHTML = 'Dein Passwort ist zu lang';
    return false;
    }
  else if(username = document.getElementsByName(name)[0].value.length < minPasswordLength)
    {
    document.getElementById(name).innerHTML = 'Dein Passwort ist zu kurz';
    return false;
    }
  else
    {
    document.getElementById(name).innerHTML = '';
    return true;
    }
  }

function checkEquality(n1,n2)
  {
  if(document.getElementsByName(n1)[0].value == document.getElementsByName(n2)[0].value)
    {
    document.getElementById(n2).innerHTML = '';
    return true;
    }
  else
    {
    document.getElementById(n2).innerHTML = 'Das Passwort ist nicht gleich';
    return false;
    }
  }

function checkBlank(name)
  {
  if(document.getElementsByName(name)[0].value != '')
    {
    document.getElementById(name).innerHTML = '';
    return true;
    }
  else
    {
    document.getElementById(name).innerHTML = 'Dieser Feld muss ausgefüllt werden';
    return false;
    }
  }

function checkBox(name)
  {
  if(document.getElementsByName(name)[0].checked)
    {
    document.getElementById(name).innerHTML = '';
    return true;
    }
  else
    {
    document.getElementById(name).innerHTML = 'Du musst die ANB akzeptieren';
    return false;
    }
  }

function checkAll()
  {
  if(checkUsernameLength('name') && checkPasswordLength('pass') && checkEquality('pass','pass_') && checkBlank('email') && checkBlank('captcha_input') && checkBox('akzept'))
    document.getElementsByTagName('form')[0].submit();
  return false;
  }


</script>
HTML:
<form action="" method="post">

<table width="550" class="q_table" cellspacing="4" cellpadding="0" align=center>
            <tr>
                <td><span class="Stil1"><img src="images/silk/user.png" /> <strong>Dein Username</strong></span></td>
              <td><input type="text" name="name" onchange="checkUsernameLength('name')" onkeyup="checkUsernameLength('name')"></td>
            </tr>
<tr><td id="name"></td></tr>
            <tr>
                <td><span class="Stil1"><img src="images/silk/key.png" /> <strong>Passwort</strong></span></td>
              <td><input type="password" name="pass" onchange="checkPasswordLength('pass')" onkeyup="checkPasswordLength('pass')"></td>
            </tr>
<tr><td id="pass"></td></tr>
            <tr>
                <td><span class="Stil1"><img src="/images/silk/key_go.png" /><strong> Wiederhole dein Passwort</strong></span></td>
              <td><input type="password" name="pass_" onchange="checkEquality('pass','pass_')" onkeyup="checkEquality('pass','pass_')"></td>
            </tr>
<tr><td id="pass_"></td></tr>
            <tr>
                <td><span class="Stil1"><img src="/images/silk/email.png" /> <strong>Deine Email Adresse</strong></span></td>
              <td><input type="text" name="email"></td>
            </tr>
<tr><td id="email"></td></tr>
                        <tr>
                <td><span class="Stil1"><img src="imgs/tag_blue.png" />  <strong>Gebe diesen Sicherheitscode ein</strong> <img src="captcha_image.php" alt="cp" /></span></td>
              <td><input type="text" name="captcha_input"></td>
            </tr>
<tr><td id="captcha_input"></td></tr>
            <tr>
                <td height="34"><span class="Stil1">Ich akzeptiere die </span><span class="Stil2"><a href="javascript:z1216382966();">ANBs</a></span></td>
                <td><input type="checkbox" name="akzept"  /></td>
            </tr>
<tr><td id="akzept"></td></tr>
<tr><td>
    <p>
                  <label>
                  <input type="button" name="reg" value="Anmelden" onclick="checkAll();">
                  </label>
                </p>

                </td>
    </tr>        </table>

</form>

Btw
in deinem HTML Code sind Fehler
 

DeletedUser

Gast
gib dem td mit der Meldung noch eine ID. Ich nehm jetzt mal "fehler_td"

Code:
var name = document.getElementsByName('name')[0];
var min = 4; // mindestlänge
var max = 10; //maximallänge
if(name.length >= min)
  {
  if(name.length <= max)
    {
     document.getElementById('fehler_td').innerHTML = "Gültiger Name.";
    }
 else
    {
    document.getElementById('fehler_td').innerHTML = "Name zu lang.";
    }
  }
else
  {
  document.getElementById('fehler_td').innerHTML = "Name zu kurz.";
  }

(Ungetestet)

/EDIT: Zu spät ^^

DaHaiz
 

DeletedUser

Gast
Aber ich würde dir nicht raten sowas einzusetzen, weil wenn man kein JS hat/aus hat, dann gehts nicht mehr, und im IE gehts auch nicht.

1. Man kann das ganze sicherlich auch so scripten dass es zu jedem Browser kompatibel ist (baeh, Wayne IE)
2. Im Zeitalter des Web 2.0 sollte man durchaus voraussetzen koennen das JS eingeschaltet ist... (nicht?)
3. Sollte das hier auch nicht die Hauptueberpruefung sein, sondern eher die Vorueberpruefung zur Auswertung waehrend der Eingabe, welche einer weiteren Ueberpruefung via PHP/Perl/Whatever unterzogen wird (alles andere waer daemlich, ne wahr?)

Nicht boes gemeint,
Zafara
 

DeletedUser

Gast
1. Man kann das ganze sicherlich auch so scripten dass es zu jedem Browser kompatibel ist (baeh, Wayne IE)
2. Im Zeitalter des Web 2.0 sollte man durchaus voraussetzen koennen das JS eingeschaltet ist... (nicht?)
3. Sollte das hier auch nicht die Hauptueberpruefung sein, sondern eher die Vorueberpruefung zur Auswertung waehrend der Eingabe, welche einer weiteren Ueberpruefung via PHP/Perl/Whatever unterzogen wird (alles andere waer daemlich, ne wahr?)

Nicht boes gemeint,
Zafara
ad 1. Klar kann man das, habe ich aber nicht :mrgreen:
ad 2. Ich habe JS normalerweise ausgeschaltet (bei Opera kann man ja dann Seitenspezifisch anschalten), schon allein damit die ganzen Werbefenster nicht dauernd "reinfliegen"
3. Ja, sicher, aber ich habe es so gescriptet, dass man das Formular nicht senden kann, wenn die Sachen nicht erfüllt sind.

Wenn ich sowas einsetzten wollte, dann würde ich alles mit AJAX machen (wäre auch einfacher) und falls JS nicht angeschalten ist, ein normales HTML Formular anbieten.
 

DeletedUser

Gast
3. Ja, sicher, aber ich habe es so gescriptet, dass man das Formular nicht senden kann, wenn die Sachen nicht erfüllt sind.

Durchaus, aber wenn JS deaktiviert ist kann man es abschicken und hat dann dennoch seine Kontrolle via PHP. ;)

Wenn ich sowas einsetzten wollte, dann würde ich alles mit AJAX machen (wäre auch einfacher) und falls JS nicht angeschalten ist, ein normales HTML Formular anbieten.

So macht mans ja heutzutage normalerweise auch... Aber danach hat er ja nicht gefragt... Ich bin sowieso der Meinung, dass man kein groszes Projekt anfangen braucht wenn man nicht einmal so grundlegende Dinge alleine hinkriegt - was mithilfe von Google und ein wenig lesen/verstehen durchaus moeglich waere... :)

Und was das JavaScript betrifft hast du wohl recht, dass es schon einige *******e gibt - ABER, wie du angemerkt hast kann man es fuer ausgewaehlte Seiten aktivieren, sodass man es fuer GUTE, SINNVOLLE Seiten die sowas voraussetzen durchaus tun kann, oder nicht? :)

MfG
Zafara
 

DeletedUser

Gast
Durchaus, aber wenn JS deaktiviert ist kann man es abschicken und hat dann dennoch seine Kontrolle via PHP. ;)
Eben nicht, ich habe es so geschrieben, dass es ohne JS gar nicht funktioniert (man kann es also nicht absenden). Das ist ja das Problem^^
 

DeletedUser

Gast
Ah, yo hab nicht genau auf den Input Type geguckt... Naja, dann hat man halt Pech gehabt... =) Aber wie gesagt, man koennte es auch lassen, denn meiner Meinung nach gehoert sone Ueberpruefung auch in das Script was die Daten dann speichert - denn ansonsten koennte man ja einfach den HTML/JS-Code veraendern und so nicht akzeptierte Daten einschleusen. ;) Aber das weiszt du ja eh... ^^ Denke wir verstehen uns und BierZelt hat das was er haben wollte - also Wayne.
 

DeletedUser

Gast
mit firebug ist es ein leichtes die seite so zu manipulieren, dass mans trotzdem absenden kann.
Das aber nur am Rande...
 
Oben