[JS] Huh, wat is hier nou fout aan?

Pagina: 1
Acties:

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 23-08 10:29
Hallo,

Ik was ff aan het java scripten en ik liep tegen dit probleem aan... waarom werkt deze code niet maar wel als ik de else weg haal... de else moet er eigelijk wel inblijven...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function ChkField(field_name, what) {
    if(eval('form.' + field_name + '.value') == '') {
        alert(what + ' heeft geen waarde, dit is wel nodig');
        return false;
    } else
        return true;
}

function Submit() {
    if(!ChkField('art_nr','Artikel nummer'))
        return false;
    elseif(!ChkField('omschrijving_kort','Omschrijving kort'))
        return false;
    elseif(!ChkField('merk_id','Merk'))
        return false;
    elseif(!ChkField('cat_id','Catogorie'))
        return false;
    elseif(!ChkField('naam','Product'))
        return false;
    elseif(!ChkField('prijs','Prijs'))
        return false;
    elseif(!ChkField('omschrijving_lang','Omschrijving lang'))
        return false;
    elseif(!ChkField('staffel','Staffel'))
        return false;
    elseif(!ChkField('duratie','Looptijd'))
        return false;
    else
        return true;
}

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
denk dat dit de fout is
code:
1
'form.' + field_name + '.value'

form.blaat_ding.value
weenie of ie dat kan vinden..
code:
1
document.getElementById(formId).veldid.value

is beter

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 23-08 10:29
Op zaterdag 18 mei 2002 13:44 schreef r0bert het volgende:
denk dat dit de fout is
code:
1
'form.' + field_name + '.value'

form.blaat_ding.value
weenie of ie dat kan vinden..
code:
1
document.getElementById(formId).veldid.value

is beter
Dat is de fout niet, want als ik die else weghaal doet ie het wel, inclusief die ChkField functie...

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 23-08 10:29
Trouwens, moet
code:
1
document.getElementById(formId).veldid.value

niet
code:
1
document.formid.getElementById(veldid).value

zijn?

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Op zaterdag 18 mei 2002 14:10 schreef Monstar.nl het volgende:
Trouwens, moet
code:
1
document.getElementById(formId).veldid.value

niet
code:
1
document.formid.getElementById(veldid).value

zijn?
Het beste is imho nog altijd:
code:
1
document.forms[formId].elements[elementId].value

Die hele eval heb je sowieso niet nodig...

Intentionally left blank


  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 23-08 10:29
Op zaterdag 18 mei 2002 14:39 schreef crisp het volgende:

[..]

Het beste is imho nog altijd:
code:
1
document.forms[formId].elements[elementId].value

Die hele eval heb je sowieso niet nodig...
Maar dat lost het else probleem niet op...

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

En als je een spatie zet tussen else en if? elseif (aan elkaar dus) kan volgens mij niet in JS.
Ik heb dit even getest, en dat werkt prima:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<html>
<head>
<script type="text/javascript">
function ChkField(field_name, what) {
    if (document.forms['myForm'].elements[field_name].value == '') {
        alert(what + ' heeft geen waarde, dit is wel nodig');
        return false;
    } else
        return true;
}
function Submit() {
    if(!ChkField('art_nr','Artikel nummer'))
        return false;
    else if(!ChkField('omschrijving_kort','Omschrijving kort'))
        return false;
    else 
        return true;
}
</script>
</head>
<body>
<form name="myForm" onSubmit="return Submit()">
Artikel nummer: <input name="art_nr" type="text" /><br />
Omschrijving kort: <input name="omschrijving_kort" type="text" /><br />
<input type="submit" value="submit" />
</form>
</body>
</html>

Intentionally left blank


  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

elseif werkt idd niet met JS, else if daarentegen wel. Braces {} zou je wellicht ook willen overwegen ;) [/antfucking]

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 23-08 10:29
Ha ha! Tuurlijk is ook zo... ik ben bezig met PHP en JS doorelkaar... |:( :) Maar {} vondt ik niet nodig... vindt dit overzichtelijker... maar dat is mijn mening...

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Op zaterdag 18 mei 2002 14:57 schreef prototype het volgende:
elseif werkt idd niet met JS, else if daarentegen wel. Braces {} zou je wellicht ook willen overwegen ;) [/antfucking]
Altijd braces gebruiken is inderdaad het meest overzichtelijk, alleen zou ik dan geen else-constructie gebruiken, maar gewoon zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function Submit() {

    if(!ChkField('art_nr','Artikel nummer')) {
        return false;
    }
    if(!ChkField('omschrijving_kort','Omschrijving kort')) {
        return false;
    }
    if(!ChkField('merk_id','Merk')) {
        return false;
    }
    if(!ChkField('cat_id','Catogorie')) {
        return false;
    }
    if(!ChkField('naam','Product')) {
        return false;
    }
    if(!ChkField('prijs','Prijs')) {
        return false;
    }
    if(!ChkField('omschrijving_lang','Omschrijving lang')) {
        return false;
    }
    if(!ChkField('staffel','Staffel')) {
        return false;
    }
    if(!ChkField('duratie','Looptijd')) {
        return false;
    }

        return true;

}

Intentionally left blank


  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

Braces {} zijn niet alleen overzichtelijker, maar ze zijn ook verplicht (!!!!) indien je multiline code uit wil voeren. Gebruik je geen braces, dan zal de volgende newline geinterpeteerd worden als uitvoerbaar bij 'else'.
Op zaterdag 18 mei 2002 15:08 schreef crisp het volgende:

[..]

Altijd braces gebruiken is inderdaad het meest overzichtelijk, alleen zou ik dan geen else-constructie gebruiken, maar gewoon zo:
Ja, idd, aangezien hier toch alleen ge-returned wordt, en de code die daarop volgt niet meer hierdoor uitgevoerd wordt.

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 23-08 10:29
Ok, bij sommig situaties zijn brackets verplicht... maar als je maar een lijntje moet uitvoeren gebruik ik ze gewoon niet want dat vindt ik handiger... maar weer is dat mijn mening...

trouwens hij werkt nu wel met else if
Pagina: 1