[JavaScript/IE] Variabele is niet gedefinieerd

Pagina: 1
Acties:
  • 800 views sinds 30-01-2008
  • Reageer

  • Beekforel
  • Registratie: November 2001
  • Laatst online: 11:16

Beekforel

Is eigenlijk geen vis

Topicstarter
Ben een beetje aan het spelen met een formulier validatie.

Formitem waarop het fout loopt:
HTML:
1
2
3
4
<tr>
    <td>Email adres:</td>
    <td><input type="text" class="formitem" name="mail" id="mailField" onFocus="JavaScript:ChgBgColor('mailField', '#f8ff8c');" onBlur="MailCheck();" /></td>
</tr>


Stuk javascript:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function MailCheck() {
    if (!CheckMail()) { 
        ChgBgColor('mailField', '#ff8888'); 
        var mail = false; 
    } else { 
        ChgBgColor('mailField', '#70e76a'); 
        var mail = true; 
    }
}

email = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

function CheckMail() {
    temp = document.forms['Contact'].elements['mailField'].value;
    return email.test(temp);
}

Volgens mij wordt de var mail altijd gevuld op deze manier, danwel true danwel false erin.

De laatste validatie is:
code:
1
2
3
4
5
6
7
8
9
function FormCheck() {
    if(mail == true) { 
        document.forms['Contact'].submit(); 
    } else if (telefoon == true) { 
        document.forms['Contact'].submit();
    } else {
        alert('Zonder contact gegevens kunnen wij helaas geen contact opnemen.'); 
    }
}

Helaas geeft IE dan een error, "mail" is niet gedefinieerd. Maar in Firefox werkt het wel prima.
Waarschijnlijk zie ik iets over het hoofd? Kom er niet meer uit. ;(

Moet je in IE nog iets extra's doen om die variabelen te definieren? Ik had er eerst geen "var" voor staan, toen kreeg ik nog meer fouten. Maar toch loopt ie nu nog vast.

[edit]Ik alert de var mail als ik hem instel nu, en hj krijgt wel netjes de goede waarde. Alleen de functie FormCheck ziet zijn waarde blijkbaar niet?

[ Voor 16% gewijzigd door Beekforel op 02-02-2006 17:48 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Declareer eens netjes je variabele globaal buiten je functie met var ervoor?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Beekforel
  • Registratie: November 2001
  • Laatst online: 11:16

Beekforel

Is eigenlijk geen vis

Topicstarter
Stom. Dat was het inderdaad. |:(
Bedankt.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:36

crisp

Devver

Pixelated

Je kan hier ook handig gebruik maken van het 'this' keyword:
HTML:
1
<input type="text" class="formitem" name="mail" onfocus="ChgBgColor(this, '#f8ff8c');" onblur="MailCheck(this);">

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function ChgBgColor(el, color)
{
    el.style.backgroundColor = color;
}

var email = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var mail;
function MailCheck(el)
{
    if (!email.test(el.value))
    { 
        ChgBgColor(el, '#ff8888'); 
        mail = false; 
    }
    else
    { 
        ChgBgColor(el, '#70e76a'); 
        mail = true; 
    }
}

Intentionally left blank