Toon posts:

Validatie in FF

Pagina: 1
Acties:
  • 252 views

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben nu al een tijdje bezig om een formulier werkend te krijgen in FireFox en Safari. De validatie wil maar niet lukken.

De code is misschien niet echt zoals het hoort, maar dit is dan ook een 'samenstelling' van alles wat ik via Google gevonden heb. Ik heb reeds al een formulier gemaakt met alert boxen ipv inline validatie. Dit heb ik uiteindelijk werkend gekregen. Maar deze maal kom ik er niet uit... In IE7 werkt alles perfect.

[code=Javascript]
function GetSelectedItem() {

sel = ""
len = document.request.routerv.length

for (i = 0; i <len; i++) {
if (document.request.routerv[i].checked) {
sel = document.request.routerv.value}
}

if (sel == "") {return false}
else {return true}
}

function CheckForm()
{
name = document.getElementById("name").value;
email = document.getElementById("email").value;
AtPos = email.indexOf("@")
StopPos = email.lastIndexOf(".")
bdmac = document.getElementById("bdmac").value;
routerv = document.getElementById("routerv").value;

if (name==null||name == "") {
hideAllErrors();
document.getElementById("nameError").style.display = "inline";
document.getElementById("name").select();
document.getElementById("name").focus();
return false;
}

else if (email==null||email == "") {
hideAllErrors();
document.getElementById("emailError1").style.display = "inline";
document.getElementById("email").select();
document.getElementById("email").focus();
return false;}

else if (AtPos == -1 || StopPos == -1 || StopPos < AtPos || StopPos - AtPos == 1) {
hideAllErrors();
document.getElementById("emailError2").style.display = "inline";
document.getElementById("email").select();
document.getElementById("email").focus();
return false;
}

else if (bdmac==null||bdmac == "") {
hideAllErrors();
document.getElementById("bdmacError").style.display = "inline";
document.getElementById("bdmac").select();
document.getElementById("bdmac").focus();
return false;
}

else if (GetSelectedItem()==false)
{
hideAllErrors();
document.getElementById("routervError").style.display = "inline";
return false;
}

return true;
}

function hideAllErrors() {
document.getElementById("nameError").style.display = "none"
document.getElementById("emailError1").style.display = "none"
document.getElementById("emailError2").style.display = "none"
document.getElementById("bdmacError").style.display = "none"
document.getElementById("routervError").style.display = "none"
}

Acties:
  • 0 Henk 'm!

  • kalizec
  • Registratie: September 2000
  • Laatst online: 17-07 01:45
En als het dan niet werkt, wat komt er dan te staan in de Error Console?
Heb je al onderzocht rondom welke regels het mis gaat?
Heb je een werkend voorbeeld online staan?

Core i5-3570K/ASRock Z75 Pro3/Gigabyte Radeon HD7850/Corsair XMS3 2x4GB/OCZ Vertex2 64GB/3x640GB WD Black/24" B2403WS Iiyama x2/Nec 7200S


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 18:21

Sebazzz

3dp

Tip: Plaats code tags om je code heen ;)

Op deze manier:
[code=Javascript]hier je code[/]

Het is nu niet te lezen.

[ Voor 12% gewijzigd door Sebazzz op 07-02-2009 16:07 ]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De testversie waar ik nu mee bezig ben staat op: "link verwijderd"

Deze werkt enkel in IE. Hij faalt op het punt waar hij de email wil verzenden. Aangezien het 'From' adres ingevuld wordt door het ingegeven adres in het formulier en de validatie hierop niet gebeurd loopt het daar mis.

[ Voor 34% gewijzigd door Verwijderd op 07-02-2009 20:49 ]


Acties:
  • 0 Henk 'm!

  • kalizec
  • Registratie: September 2000
  • Laatst online: 17-07 01:45
Het probleem is dat je code de geselecteerde waarde van een radiobutton probeert te achterhalen. Echter is geen van beide radiobuttons in die groep momenteel geselecteerd. Direct gevolg is dat je inderdaad een 'null' terug krijgt.

Kortom, of je Javascript aanpassen en eerst testen of er wel iets geselecteerd is, of zorgen dat je formulier een selected radiobutton heeft.

PS.

Thans, dat is de enige foutmelding die ik in Error Console te zien krijg bij het bekijken van het formulier. Wellicht dat jij een andere fout krijgt/bedoeld, maar dan zul je echt wat meer informatie moeten geven over wat er precies mis gaat en wanneer (en dan kun je eigenlijk meteen zelf Error Console gebruiken).

[ Voor 30% gewijzigd door kalizec op 07-02-2009 17:36 ]

Core i5-3570K/ASRock Z75 Pro3/Gigabyte Radeon HD7850/Corsair XMS3 2x4GB/OCZ Vertex2 64GB/3x640GB WD Black/24" B2403WS Iiyama x2/Nec 7200S


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Inderdaad, het probleem zat bij de radio buttons. Door het vele proberen en steeds aanpassen van de code was er inderdaad een lijn blijven staan die in principe overbodig was.

routerv = document.getElementById("routerv").value;

Na deze te verwijderen was het probleem opgelost.

Tx Kalizec

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Mooi dat het opgelost is, maar ik wil je wel verzoeken voortaan zelf wat meer moeite te investeren in je topicstart (en voordat je überhaupt een topic start ;) ). Kijk je topicstart nog eens door en hou die dan even langs onze Quickstart. Je zult beseffen dat dit niet helemaal de manier is waarop wij graag topics zien hier ;) Maar goed, zand erover. Weet je dat voor de volgende keer ;)

[ Voor 7% gewijzigd door RobIII op 07-02-2009 21:08 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.