Toon posts:

[js] is dit correcte code?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een site die vanaf IE 4 goed moet draaien. Ik gebruik een volgend stukje code om een form te checken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<script LANGUAGE="JavaScript">
function check() {
if (document.myform.omschrijving.value == '') {
alert ('U bent de naam van het artikel vergeten!');
return false;
} else if (document.myform.naam.value == '') {
alert ('U bent de naam vergeten!');
return false;
} else {
myform.submit();
}
</script>

Ik verzend het formulier als volgt:

<form name="myform" action="volgedepagina.php" method="post">

<a href="javascript:check();">verzenden</a>

Maar nu krijg ik het idee dat deze code niet browser vriendelijk is!?

Wat is (multibrowser gezien) de beste manier om deze check aan te roepen en het form uiteindelijk te verzenden?

Kan ook als volgt:

<a href="#" OnClick="javascript:check();">bla</a>

..maar volgens mij is dat helemaal niks.

Verwijderd

Zowiezo in je form tag onsubmit gebruiken.

<form method="post" name="mijnform" action="actie.php" onsubmit="return mijnfunctie();">

Vervolgens met teruggave van return true; of return false; in de functie mijnfunctie(); aangeven of de form wel of niet mag submitten.

Vervolgens forms aanroepen.

document.forms('mijnform').veld.value

  • Willem
  • Registratie: Februari 2001
  • Laatst online: 06-09 17:48
ivy:
Kan ook als volgt:

<a href="#" OnClick="javascript:check();">bla</a>

..maar volgens mij is dat helemaal niks.
Klopt, paar draadjes terug nog over gehad. Dit is netter:
code:
1
2
3
4
5
6
7
8
9
<a href="javascript:{}" onclick="...">

of

<a href="javascript:void(0);" onclick="...">

of

<a href="javascript://" onclick="...">

dus. :)

/edit comment by Gordijnstok

Motor (of auto) onderhoud bijhouden


Verwijderd

Topicstarter
Op dinsdag 04 juni 2002 11:14 schreef Gordijnstok het volgende:
Zowiezo in je form tag onsubmit gebruiken.

<form method="post" name="mijnform" action="actie.php" onsubmit="return mijnfunctie();">

Vervolgens met teruggave van return true; of return false; in de functie mijnfunctie(); aangeven of de form wel of niet mag submitten.

Vervolgens forms aanroepen.

document.forms('mijnform').veld.value
Thanks! Ik heb nu inderdaad een OnSubmit actie gemaakt. Werkt uitstekend (IE 6) in combinatie met een submit button. Als ik een hrefje maak met een form.submit() dan werkt he tniet denk ik, dat las ik net toen is een search deed hier.

Dus werkt prima, bedankt! Nu nog even testen in IE -6..

Verwijderd

Wat nog netter is, in de lijst van willem. Is <a href="javascript://"> te gebruiken. Je voert dan comments uit, helemaal nada noppes niks dus :)

  • Willem
  • Registratie: Februari 2001
  • Laatst online: 06-09 17:48
Gordijnstok:
Wat nog netter is, in de lijst van willem. Is < a href="javascript://" > te gebruiken. Je voert dan comments uit, helemaal nada noppes niks dus :)
Was in eerste instantie ook de bedoeling, moet geen HTML en JS door mekaar halen; javascript:# is namelijk niks :)

Motor (of auto) onderhoud bijhouden


Verwijderd

Op dinsdag 04 juni 2002 11:22 schreef willem169 het volgende:
Was in eerste instantie ook de bedoeling, moet geen HTML en JS door mekaar halen; javascript:# is namelijk niks :)
Ik word gewoon naar van onze behulpzaamheid :+ We zijn veel te sociaal :P

Verwijderd

Topicstarter
maar is een comment in de href geven beter als een script zelf?

M.a.w. wat is beter? Een comment en dan de actie in een OnClick zetten of een actie gelijk in de href zetten?

Verwijderd

Voordeel is dat een OnClick geen *klik* geluidje krijgt, en een href actie wel :)

Als je lid bent van de anti MsClick bond, dan gebruik je ook geen href >:)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Trouwens.... Als je je scriptje fatsoenlijk indent zou je zo nog een fout eruit kunnen halen...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Ik vind deze manier persoonlijk netter
code:
1
2
3
4
5
6
7
8
9
10
  function submitselection()
  {
    fout = false; msg = "";
    if (document.forms('infoform').info.value == "") { fout = true; msg = msg + "\n* De informatie"; }
    if (document.forms('infoform').datetime.value == "") { fout = true; msg = msg + "\n* De datum"; }
    if (fout == true) { alert("Je bent iets vergeten:" + msg); } else document.forms('infoform').submit();
  }


onclick='submitselection();'

Dan zie je in 1 bericht alle velden die je vergeten bent

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Op dinsdag 04 juni 2002 12:29 schreef XLerator het volgende:
Ik vind deze manier persoonlijk netter
code:
1
2
3
4
5
6
7
8
9
10
  function submitselection()
  {
    fout = false; msg = "";
    if (document.forms('infoform').info.value == "") { fout = true; msg = msg + "\n* De informatie"; }
    if (document.forms('infoform').datetime.value == "") { fout = true; msg = msg + "\n* De datum"; }
    if (fout == true) { alert("Je bent iets vergeten:" + msg); } else document.forms('infoform').submit();
  }


onclick='submitselection();'

Dan zie je in 1 bericht alle velden die je vergeten bent
En deze is nog netter:

if (fout == true) { document.getElementById('MsgBox').innerHTML = msg; document.getelementById('MsgBox').style.visibility = 'visible';}

En dan uiteraard wel met crossbrowser scripting aangezien dit alleen DOM model is :)

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Wil je het echt veilig maken, dan moet je de onsubmit event gebruiken. Helaas kun je dan nog steeds (blijkbaar) de form.submit() intypen in je url om zonder validator de form te submitten.

Wil je het ECHT veilig maken moet je dus ff de form.submit() method overschrijven :) (Kan dus wel eens nodig zijn bij tricky dingen als file-upload e.d.)

Code-sample:
code:
1
2
3
4
5
function cancelSubmit(){
    document.forms[0].submit=function(){
        alert("cheater");
    }
}   onload=cancelSubmit;

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

kewl :D de submit hacken :P lol.

Waar ik trouwens regelmatig tegen aan gelopen ben is dat het form.submit() uitvoeren via een onclick op sommige os+browser combinaties gewoon niet wil werken. Hetzelfde maar dan in een href werkt dan wel. Ik gebruik dus zelf nooit meer de onclick om forms te submitten. :{ Heb er verder geen verklaring voor oid.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

Wel er even op letten dat document.forms een array is, en geen functie :)

document.forms[] dus, en geen document.forms() ;)

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Ja i know :D
Maar () werkt ook dus... :)

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Op dinsdag 04 juni 2002 18:53 schreef XLerator het volgende:
Ja i know :D
Maar () werkt ook dus... :)
Cheatah heeft wel gelijk :) Ik maakte simpelweg een typo ;) Onder oudere browsers en miereneukerige browsers werkt het niet.
Pagina: 1