[Form] Formulier checken

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

Acties:
  • 0 Henk 'm!

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06 14:43
het is de bedoeling dat als ik op submit druk dat hij dan doormiddel van een script een aantal checks uitvoert.
Nu ben ik hier al enkele uren mee bezig maar krijg de ene foutmelding na de andere.
De checks zijn wel belangrijk maar heb ook een ander probleem
Als ik op de knop 'opslaan' druk is het de bedoeling dat hij een check() script runt maar op een of andere manier doet hij dat niet en voert meteen de 'action' uit.

Ik heb al zoveel manieren geprobeerd en ook wat dingen van vele sites geprobeerd maar ik weet het even niet meer.
dus ik hoop dat er iemadn is die me even kan helpen met dit.

dan post ik maar even wat ik tot nu toe heb (dit is in dit geval een mengelmoes van alle pogingen die ik zelf heb gedaan)
HTML:
1
2
3
<form method="post" action="abonn_save.php" onSubmit="return check()">

<input name="submit" onClick="javascript:checks()" type="submit" value="Opslaan" tabindex="22">

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function Checks(){
//alle check onSubmit
var debnr = document.forms[0].abonnr.id
if(emptyField(debnr) == false){
return false
}
//heb de rest maar even weggelaten 
//want wil eerst zien of hij het doet met een enkele simpele check
else{
document.forms[0].submit.enabled = true
    }
}

function emptyField(field)
{
    if(document.forms[0].field.value == ''){
        alert("Er zijn nog enkele velden leeg.")
        return false
    }
    return true
}


edit: http://gathering.tweakers.net/forum/list_messages/841166///check%2Cformulier
heb net dit gevonden en probeer het nu zelf op te lossen...

edit2:
:( grrr
nix werkt en voert nog steeds de action uit...
heb alleen de check script even tijdelijk vervangen door dit:
HTML:
1
<form method="post" action="abonn_save.php" onSubmit="return check(this)">

JavaScript:
1
2
3
4
5
6
7
8
9
function Checks(form){
    if (document.form.debnr.value = '') {
        alert('Vul a.u.b. een Debiteurnummer in');
        return false;
    }
    else{
      return true;
      }
}

[ Voor 37% gewijzigd door Tijgertje84 op 24-10-2005 11:50 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


Acties:
  • 0 Henk 'm!

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06 14:43
:? helemaal niemand??
hmmz heb trouwens misschien wel een foute topic titel gebruikt... :X

zou een mod het kunnen veranderen in -> [JS/HTML] Check() on Submit

[ Voor 29% gewijzigd door Tijgertje84 op 24-10-2005 15:56 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


Acties:
  • 0 Henk 'm!

  • TXC
  • Registratie: Oktober 2002
  • Laatst online: 01-07 08:56

TXC

Wat voor JS foutmeldingen krijg je precies? Probeer het anders eens zo:

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<form name="MijnForm" method="post" action="abonn_save.php"> 
<input type="button" value="opslaan" OnClick="JavaScript:Checks()" />
</form>

<script language="JavaScript">
function Checks()
{
  // hier je checks
  if (mijnveldje.value != "") {
    document.MijnForm.submit()
  } else
    window.alert("Mijn veldje niet ingevuld!");
  {
}
</script>


In plaats van document.MijnForm kunt je ook document.GetElementById('MijnFormID') gebruiken (als je je form een id geeft).

Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 02-07 18:16

TheBorg

Resistance is futile.

Ik ben geen Javascript held, maar volgensmij zijn de functie namen case sensitive. Ik zou proberen:
return Check(this);

i.p.v.:
return check(this);

[ Voor 3% gewijzigd door TheBorg op 24-10-2005 16:12 ]


Acties:
  • 0 Henk 'm!

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06 14:43
nope werkt niet zoals ik al had verwacht want had zelf al eerder zoiets...
tis echt heel vaag waarom hij die script gewoon niet uitvoert..
als ik er alleen een alert box neer zet laat hij deze wel zien maar ook dan gaat hij gewoon verder
ook als ik de return automatisch false maak ook dan gaat hij verder :?
volgens mij is het de bedoeling dat hij niet submit totdat hij true krijgt van de check()

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


Acties:
  • 0 Henk 'm!

  • newpegasus
  • Registratie: Juni 2003
  • Laatst online: 13-03-2022

newpegasus

Hertog

De fout zit hierin:

type="submit"

Nu word er altijd gesubmit, onafhankelijk van je JS. Het zou idd moeten werken zoals TXC zegt.

GuitarFacts | Last.fm | Google Zoekmachine Optimalisatie


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:01

crisp

Devver

Pixelated

Gebruik van onsubmit is wel degelijk de juiste manier, maar je moet er dan natuurlijk wel voor zorgen dat de naam van de functie die je aanroept ook overeenkomt met de functie die je wilt gebruiken - ook qua case ;)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • BBrunekreeft
  • Registratie: Mei 2004
  • Laatst online: 10:08

BBrunekreeft

Dus...

Tijgertje84 schreef op maandag 24 oktober 2005 @ 16:31:
nope werkt niet zoals ik al had verwacht want had zelf al eerder zoiets...
tis echt heel vaag waarom hij die script gewoon niet uitvoert..
als ik er alleen een alert box neer zet laat hij deze wel zien maar ook dan gaat hij gewoon verder
ook als ik de return automatisch false maak ook dan gaat hij verder :?
volgens mij is het de bedoeling dat hij niet submit totdat hij true krijgt van de check()
Een onsubmit bij een form tag lijkt me niet werken omdat die aangeroepen wordt als het form gesubmit wordt.
Probeer eens een onclick op je submit button zoals hieronder (let op de 'return')
code:
1
<input type="submit" value="verstuur" onclick="return Checks(this);">

[ Voor 5% gewijzigd door BBrunekreeft op 24-10-2005 16:41 ]


Acties:
  • 0 Henk 'm!

  • 2_05
  • Registratie: November 2004
  • Laatst online: 06-07 11:39
Ik zie drie dingen, check(), checks() en Checks(), moeten dat niet dezelfde zijn?

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:01

crisp

Devver

Pixelated

BBrunekreeft schreef op maandag 24 oktober 2005 @ 16:39:
[...]


Een onsubmit bij een form tag lijkt me niet werken omdat die aangeroepen wordt als het form gesubmit wordt.
Ja, en dat gebeurd toch als je op de submitbutton drukt?

Dit werkt gewoon hoor:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
function check(form)
{
  if (form.elements['foo'].value == '')
  {
    alert('niets ingevuld ;(');
    return false;
  }

  return true;
}
</script>
<form action="#" onsubmit="return check(this)">
  <input name="foo">
  <input type="submit">
</form>

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06 14:43
crisp schreef op maandag 24 oktober 2005 @ 16:43:
[...]

Ja, en dat gebeurd toch als je op de submitbutton drukt?

Dit werkt gewoon hoor:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
function check(form)
{
  if (form.elements['foo'].value == '')
  {
    alert('niets ingevuld ;(');
    return false;
  }

  return true;
}
</script>
<form action="#" onsubmit="return check(this)">
  <input name="foo">
  <input type="submit">
</form>
:? ik snap dit niet.....
ik had echt PRECIES hetzelfde, want dat haalde ik uit die andere topic (laatste post) zie eerste post en de link erbij....
enigste wat ik anders ahd was dit: document.form.debnr.value .....
waarschijnlijk werkt dit dus niet... |:(
en had zelfs ook dit gebruikt: document.forms[0].debnr.value
maar ook dat mocht niet baten dan...

[ Voor 59% gewijzigd door Tijgertje84 op 24-10-2005 16:58 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


Acties:
  • 0 Henk 'm!

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06 14:43
nog een laatste vraag voor wat verduidelijking waar het bij mij dus fout ging bij dit topic..

welke methode(s) zijn goed?
soms wordt een frm meegegeven of gemaakt door dit: frm=document.forms[0]
  • frm.elements['veld'].value
  • document.frm.veld.value
  • document.forms[0].veld.value
  • document.GetElementById('veld').value
  • frm.GetElementById('veld').value
deze heb ik dus de afgelopen tijd allemaal minimaal een keer gezien en ik denk dus dat het verschillend is wanneer er een bepaalde moet worden gebruikt..
of is het misschien verstandig om een en dezelfde altijd te gebruiken die altijd werkt..?

[ Voor 21% gewijzigd door Tijgertje84 op 25-10-2005 08:44 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:01

crisp

Devver

Pixelated

Als het enigszins mogelijk is verdient het altijd aanbeveling een referentie naar het formulier aan je functie door te geven middels het 'this' keyword.
In alle andere gevallen is de beste manier om je formulier een id te geven (geen name dus) en te werken met document.getElementById('formid') of document.forms['formid']

Intentionally left blank

Pagina: 1