Toon posts:

[javascript] 2 velden valideren en afbeelding weergeven

Pagina: 1
Acties:

Verwijderd

Topicstarter
bij een nieuwe registratie van een gebruiker wordt 2 keer om het wachtwoord gevraagd (ter validatie van invoer).

Als beide velden ingevoerd zijn, en de wachtwoorden overeen komen, wil ik dat erachter een afbeelding weergegeven wordt. (wordt volgens mij ook bij macromedia gebruikt als ik me niet vergis).

ik ben zelf al een beetje aan het prutsen gegaan, maar het wil nog niet lukken.

mijn code:

------ De Functie (javascript) ---------
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function checkSame()
{
    if (document.form1.Emailaddress != '') 
    {
        (document.form1.ReEnterEmailaddress2 != ''))
        {
            if (document.form1.Emailaddress == document.form1.ReEnterEmailaddress2)
            {
                document.form1.iconOK.visible=true;
            }
                else
                {
                    document.form1.iconOK.visible=false;
                }
        }
    }
}

----- de velden en het aanroepen van de functie (html) -----
code:
1
2
3
4
5
<tr>
      <td><input name="Emailaddress" type="text" id="Emailaddress" onChange="javascript: checkSame()"></td>
      <td><input name="ReEnterEmailaddress2" type="text" id="ReEnterEmailaddress2" onChange"javascript: checkSame()"> 
        &nbsp;<input type='image' src='images/icon_ok.gif' name='iconOK' id='iconOK' align='absmiddle' disabled></td>
</tr>

Ik moet erbij zeggen dat ik nog maar zelden met javascript gewerkt heb (misschien wel te zien) ;)

Weet iemand wat er fout is, en wat misschien de oplossing is?? :)

[ Voor 12% gewijzigd door Verwijderd op 08-09-2004 14:46 ]


Verwijderd

zitten wat haken fout volgens mij

je kan alles gewoon in 1 if gooien
code:
1
2
3
4
5
if (mail1!=''&&mail2!=''&&mail1==mail2) {
  //afbeelding 
} else {
  //geen afbeelding
}


gooi verder je code eens netjes in [code] tags en indent de boel wat, da's voor ons een stuk makkelijker leesbaar

verder kan je je elementen beter zo aanroepen:
code:
1
var mail1 = document.forms['form1'].elements['Emailadress'].value;

en kan je dat plaatje net zogoed gewoon een img van maken, geef hem een id en roep hem aan met
code:
1
2
3
document.getElementById('iconOK').style.visibility = 'hidden';
//of
document.getElementById('iconOK').style.display= 'none';

dan gebruik je tenminste code die ook crossbrowser werkt (en DOM compliant en je leert het meteen goed ;))


edit____

woei code tags :D nu zie je zelf ook wel wara het fout gaat denk ik
code:
1
2
3
...
(document.form1.ReEnterEmailaddress2 != ''))
...

er mist een "if" en er staat een haak teveel

[ Voor 156% gewijzigd door Verwijderd op 08-09-2004 14:52 ]


Verwijderd

Topicstarter
Kheb nu wat aanpassingen verricht, maar zonder positief resultaat :'(
heb nu bij beide ...visibility = 'hidden' staan, maar hij is gewoon visible :S
btw.. wat moet ik er neer zetten ipv hidden om hem visible te maken ? :/

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function checkSame()
{
var mail1 = document.forms['form1'].elements['Emailaddress'];
var mail2 = document.forms['form1'].elements['ReEnterEmailaddress'];

    if (mail1 != '' && mail2 != '' && mail1 == mail2)
    {
        document.getElementById('iconOK').style.visibility = 'hidden';
    }
                else
                {
                    document.getElementById('iconOK').style.visibility = 'hidden';
                }
}

<tr>
      <td><input name="Emailaddress" type="text" id="Emailaddress" onChange="javascript: checkSame()"></td>
      <td><input name="ReEnterEmailaddress2" type="text" id="ReEnterEmailaddress2" onChange"javascript: checkSame()"> 
        &nbsp;[img]"images/icon_ok.gif"[/img]</td>
</tr>

[ Voor 29% gewijzigd door Verwijderd op 08-09-2004 14:56 ]


Verwijderd

http://www.w3schools.com/...erence.asp#classification

visible :D

en verder lees je nog niet de value van het element uit
code:
1
var mail1 = document.forms['form1'].elements['Emailaddress'].value;

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 23-05 12:10

RM-rf

1 2 3 4 5 7 6 8 9

ik zou eerder kiezen voor het gebruik van display: none;:

HTML:
1
2
<img src="images/icon_ok.gif" width="25" height="24" 
   id="iconOK" style="display: none;">


en dan in je javascript:
JavaScript:
1
document.getElementById('iconOK').style.display = "block" || "none"


overigens:
JavaScript:
1
if (mail1 != '' && mail2 != '' && mail1 == mail2)

is gelijk aan:
JavaScript:
1
if (mail1 != '' && mail1 == mail2)

[ Voor 23% gewijzigd door RM-rf op 08-09-2004 15:02 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Topicstarter
ok thnx.. zie dat ik ook een = vergeten ben bij onChange .. ik check ff of het gaat werken

hmm.. het gaat dus niet werken... na het wijzigen van het wachtwoordveld (als dus de functie aangeroepen wordt) dan geeft IE6 in de statusbalk een script error aan :(

[ Voor 49% gewijzigd door Verwijderd op 08-09-2004 15:31 ]


Verwijderd

Topicstarter
Ik voeg nogmaals mijn code in, misschien dat iemand ziet wat er fout zit :|

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function checkInput()
{
var mail1 = document.forms['form1'].elements['Emailaddress'].value;
var mail2 = document.forms['form1'].elements['ReEnterEmailaddress'].value;

    if (mail1 != '' && mail1 == mail2)
    {
        document.getElementById('iconOK').style.visibility = 'visible';
    }
                else
                {
                    document.getElementById('iconOK').style.visibility = 'hidden';
                }
}

<tr>
      <td><input name="Emailaddress" type="text" id="Emailaddress"></td>
      <td><input name="ReEnterEmailaddress2" type="text" id="ReEnterEmailaddress2" onChange="javascript: checkInput();"> 
        &nbsp;[img]"images/icon_ok.gif"[/img]&nbsp;<input type='image' name='iconOK' id='iconOK' src='images/icon_ok.gif'></td>
</tr>


btw: na het wijzigen van het wachtwoordveld (als dus de functie aangeroepen wordt) dan geeft IE6 in de statusbalk een script error aan

[ Voor 28% gewijzigd door Verwijderd op 08-09-2004 15:39 ]


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
je zegt
...elements['ReEnterEmailaddress'].value;

terwijl je element ReEnterEmailaddress2 heet.
Pagina: 1