Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz dany27 #3918 üzenetére

    Szerintem inkább ott lesz a hiba, hogy nem jól raktad össze az oldalt, ilyenektől a JS-függvények megőrülnek, nagyon nem díjazzák, egyszerűen nem működnek.
    pl. az oldal szerkezete így néz ki alapból:
    <html>
    <head>
    <title>Cím</title>
    <meta ... />
    <!-- meta tagek -->
    </head>
    <body>
    <!-- ide jöhet a főtartalom -->
    </body>
    </html>

    Te pedig így csináltad:
    <html>
    <head>
    <!--itt a JS-függvény -->
    </head>
    </html>
    <!-- ide raktad a főtartalmat, amit PHP-vel generáltál -->

    Ebből jól látszik, hogy még azelőtt lezártad az oldalt </html>-lel, mielőtt az űrlapot kiírattad volna.
    Tehát legyen egy <body> rész, és oda rakd be a form elemeit.
    De teljesen felesleges ezt PHP-vel belerakni, ezzel csak lassítod a megjelenítést. Pakold bele egyszerűen HTML-ként.

    Ezenkívül nem szerencsés név pont a submit()-et függvénynévként választani, mivel ez eleve egy beépített függvénynév, ettől elküldi a formot. :)
    Én a submit gombhoz szoktam inkább tenni egy onclick-be az ellenőrzést.
    Ezenkívül kicsit tördeld jobban a kódodat.

    Áhh, de szerencsére Notepad++-ban csak pár kattintgatás átvariálni kicsit a kódot, inkább megcsináltam :)
    Persze magát a függvényt nem ellenőriztem, abban még lehet hiba.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="hu" xml:lang="hu">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <script type="text/javascript">
    <!--
    function form_submit()
    {
    var nick=document.getElementById("nick").value;
    var pass=document.getElementById("password").value;
    var pass2=document.getElementById("password2").value;
    var email=document.getElementById("mail").value;

    document.getElementById("nick").style.backgroundColor="#FFFFFF";
    document.getElementById("password").style.backgroundColor="#FFFFFF";
    document.getElementById("password2").style.backgroundColor="#FFFFFF";
    document.getElementById("mail").style.backgroundColor="#FFFFFF";

    submit = true;

    if (nick.length<4 || nick.length<40)
    {
    document.getElementById("nick").style.backgroundColor="#FFDDDD";
    submit = false;
    }
    if (pass.length<6 || pass.length<40)
    {
    document.getElementById("pass").style.backgroundColor="#FFDDDD";
    submit = false;
    }
    if (pass1!=pass2)
    {
    document.getElementById("pass").style.backgroundColor="#FFDDDD";
    document.getElementById("pass2").style.backgroundColor="#FFDDDD";
    submit = false;
    }
    if (email.length==0)
    {
    document.getElementById("mail").style.backgroundColor="#FFDDDD";
    submit = false;
    }
    if(submit == false)
    {
    return false;
    }
    else
    {
    return true;
    }
    }
    // -->
    </script>
    </head>
    <body>
    <center>
    <h2>Regisztráció</h2>
    <table align="center">
    <form method="POST" action="register.php">
    <tr>
    <td>Nick Név</td>
    <td><input type="text" name="nick" id="nick" /></td>
    </tr>
    <tr>
    <td>Jelszó</td>
    <td><input type="password" name="password" id="password" /></td>
    </tr>
    <tr>
    <td>Jelszó ismét</td>
    <td><input type="password" name="password2" id="password2" /></td>
    </tr>
    <tr>
    <td>E-Mail</td>
    <td><input type="text" name="mail" id="mail" /></td>
    </tr>
    <tr>
    <td align="center" colspan="2">
    <input type="reset" value="Újra" />
    <input type="submit" value="Regisztráció" onclick="return form_submit();" />
    </td>
    </tr>
    </form>
    </table>
    </center>
    </body>
    </html>

    Egyébként ez inkább JavaScript topicba kellett volna, hogy menjen. :)

    Szerk.:
    de most nézegetem a JavaScript-függvényt, az alábbi sornak mi értelme?
    if (nick.length<4 || nick.length<40)
    Ezt össze lehetett volna vonni így:
    if (nick.length<40)
    Mivel ha a kisebb mint 4 nem teljesül, akkor átugrik a kisebb mint 40 feltételvizsgálatra.
    Ha meg mindenképp kisebb, mint 4, akkor az belefér a kisebb mint 40-be... :D
    Ugyanez vonatkozik a következő sorra, aminek emiatt szintén semmi értelme:
    if (pass.length<6 || pass.length<40)

    Aminek megint nincs értelme:
    document.getElementById("nick").style.backgroundColor="#FFFFFF";
    document.getElementById("password").style.backgroundColor="#FFFFFF";
    document.getElementById("password2").style.backgroundColor="#FFFFFF";
    document.getElementById("mail").style.backgroundColor="#FFFFFF";

    Ezek így külön tök feleslegesek, inkább pakold bele egy else ágba, mondjuk valahogy így:
    if (nick.length<40)
    {
    document.getElementById("nick").style.backgroundColor="#FFDDDD";
    submit = false;
    }
    else
    document.getElementById("nick").style.backgroundColor="#FFFFFF";

    Ja, meg sokkal szebb és átláthatóbb lenne a kódod, ha egyszerűsítenéd a dolgokat, pl.:
    var nick=document.getElementById("nick");
    Ezután:
    if (nick.value.length<40)
    {
    nick.style.backgroundColor="#FFDDDD";
    submit = false;
    }

    Tehát itt egyszerűen már csak nick-kel hivatkozol rá, nincs még egy getElementById.

Új hozzászólás Aktív témák