Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Velden verplicht maken

Pagina: 1
Acties:
  • 115 views sinds 30-01-2008

Verwijderd

Topicstarter
Hoi,
Ik heb een invulformulier gemaakt maar ik zou graag hebben dat de gebruikers "radio buttons" en "keuze lijsten" verplicht moeten invullen.
Ik heb al een javascript voor de gewone tekstvelden maar ik de radio buttons en keuze lijsten werken niet.

Het javascript is als volgt:

<script language="JavaScript">
function formulierTest(formulierVeld){
//Geef hier de naam in van de verplichte velden, zoals in je formulier:
var verplichtVeld = Array("Naam", "Voornaam", "Straat", "Huisnummer", "Postcode", "Woonplaats", "Telefoonnummer", "GSM", "MAILFROM", "Geslacht", "Geboortedatum", "Inschrijving", "van", "tot", "select1", "select2", "select3", "select4", "Voornaam1", "Achternaam1", "checkbox");
//Geef hier de naam in die moet verschijnen in het alert-venster:
var veldBeschrijving = Array("Naam", "Voornaam", "Straat", "Huisnummer", "Gemeente", "Postcode", "Woonplaats", "Telefoonnummer", "GSM", "E-mail adres", "Geslacht", "Geboortedatum", "Inschrijven voor", "Reisdata van", "Reisdata tot", "Aantal volwassenen", "Aantal kinderen", "Wens de kamer te delen J/N", "Deelnemers: aanhef", "Deelnemers: voornaam", "Deelnemers: achternaam", "U moet akkoord gaan met de algemene voorwaarden");
//Geef hier het bericht in:
var alertBoodschap = "Gelieve volgende velden in te vullen:\n";

//Hieronder niets wijzigen:
var Boodschap = alertBoodschap.length;
for (var i = 0; i < verplichtVeld.length; i++){var obj = formulierVeld.elements[verplichtVeld[i]];if (obj){switch(obj.type){case "select-one":
if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){alertBoodschap += "-" + veldBeschrijving[i] + "\n";}break;case "select-multiple":
if (obj.selectedIndex == -1){alertBoodschap += " - " + veldBeschrijving[i] + "\n";}break;
case "text":case "textarea":if (obj.value == "" || obj.value == null){alertBoodschap += " - " + veldBeschrijving[i] + "\n";}break;default:
if (obj.value == "" || obj.value == null){alertBoodschap += " - " + veldBeschrijving[i] + "\n";}}}}
if (alertBoodschap.length == Boodschap){return true;}else{alert(alertBoodschap);return false;}}

</script>

Verder heb ik:

<form action="/cgi-bin/form.cgi" method="POST" name="form2" id="form2" onSubmit="return formulierTest(this);">

Wat niet werkt is:
- de radio buttons (geslacht)
- de keuze lijsten (aantal volwassenen, aantal kinderen, kamer delen)
- het e-mail adres (script geeft weer dat dit niet is ingevuld terwijl dit wel is ingevuld)
- het aankruisvakje (akkoord gaan met algemene voorwaarden)
- het velde Achternaam bij deelnemers

De url van het formulier is: http://users.telenet.be/a...er/boekingsformulier.html

Hopelijk kunnen jullie me verderhelpen! Alvast bedankt!!!

  • disjfa
  • Registratie: April 2001
  • Laatst online: 04-11 11:05

disjfa

be

Heb je zelf al wat gevonden waarom het niet werkt?

Je weet ook dat niet iedereen javascript heeft.

disjfa - disj·fa (meneer)
disjfa.nl


  • Padschild
  • Registratie: September 2004
  • Laatst online: 28-11-2020
Eerst maar eens je code binnen de juiste tags zetten:


JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script language="JavaScript">
function formulierTest(formulierVeld){
//Geef hier de naam in van de verplichte velden, zoals in je formulier:
var verplichtVeld = Array("Naam", "Voornaam", "Straat", "Huisnummer", "Postcode", "Woonplaats", "Telefoonnummer", "GSM", "MAILFROM", "Geslacht", "Geboortedatum", "Inschrijving", "van", "tot", "select1", "select2", "select3", "select4", "Voornaam1", "Achternaam1", "checkbox");
//Geef hier de naam in die moet verschijnen in het alert-venster:
var veldBeschrijving = Array("Naam", "Voornaam", "Straat", "Huisnummer", "Gemeente", "Postcode", "Woonplaats", "Telefoonnummer", "GSM", "E-mail adres", "Geslacht", "Geboortedatum", "Inschrijven voor", "Reisdata van", "Reisdata tot", "Aantal volwassenen", "Aantal kinderen", "Wens de kamer te delen J/N", "Deelnemers: aanhef", "Deelnemers: voornaam", "Deelnemers: achternaam", "U moet akkoord gaan met de algemene voorwaarden");
//Geef hier het bericht in:
var alertBoodschap = "Gelieve volgende velden in te vullen:\n";

//Hieronder niets wijzigen:
var Boodschap = alertBoodschap.length;
for (var i = 0; i < verplichtVeld.length; i++){var obj = formulierVeld.elements[verplichtVeld[i]];if (obj){switch(obj.type){case "select-one":
if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){alertBoodschap += "-" + veldBeschrijving[i] + "\n";}break;case "select-multiple":
if (obj.selectedIndex == -1){alertBoodschap += " - " + veldBeschrijving[i] + "\n";}break;
case "text":case "textarea":if (obj.value == "" || obj.value == null){alertBoodschap += " - " + veldBeschrijving[i] + "\n";}break;default:
if (obj.value == "" || obj.value == null){alertBoodschap += " - " + veldBeschrijving[i] + "\n";}}}}
if (alertBoodschap.length == Boodschap){return true;}else{alert(alertBoodschap);return false;}}

</script>
HTML:
1
<form action="/cgi-bin/form.cgi" method="POST" name="form2" id="form2" onSubmit="return formulierTest(this);">


Verder kunnen wij niet kant en klare scripts oplossen, je zult toch echt even moeite moeten doen om uit te leggen wat de bedoeling is, omdat dit nu niet duidelijk over komt.

Ik vraag me trouwens ook af of het verstanding is om aan de client-zijde dergelijke contoles uit te voeren, of iets daadwerkelijk ingevuld is. Als je deze checks ook aan de server kant uitvoerd is het prima, maar zorg er voor dat een check aan de client-zijde er voor is om de snelheid te bevorderen.

Verwijderd

Topicstarter
Wel, ik ben al weken aan het zoeken.
Ik snap niets van javascript. Bij Var verplicht veld heb ik de naam van de radio buttons en invullijsten gezet.
Dus normaal gezien zou het toch moeten werken.

Ik kan de controle niet aan de server zijde laten aanvoeren aangezien de site gehost wordt bij mijn provider en die aanvaard enkel client side scripting.

Verwijderd

Topicstarter
disjfa schreef op dinsdag 04 september 2007 @ 13:59:
Heb je zelf al wat gevonden waarom het niet werkt?

Je weet ook dat niet iedereen javascript heeft.
Wat bedoel je dat niet iedereen javascript heeft? Is dit niet standaard bij alle browsers?
Wat stel je dan voor als alternatief?

PHP en dergelijke aanvaard de provider niet.

  • Padschild
  • Registratie: September 2004
  • Laatst online: 28-11-2020
Verwijderd schreef op dinsdag 04 september 2007 @ 14:21:
Wel, ik ben al weken aan het zoeken.
Ik snap niets van javascript. Bij Var verplicht veld heb ik de naam van de radio buttons en invullijsten gezet.
Dus normaal gezien zou het toch moeten werken.

Ik kan de controle niet aan de server zijde laten aanvoeren aangezien de site gehost wordt bij mijn provider en die aanvaard enkel client side scripting.
Wat is dat CGI script dan waarnaar je post?

Verwijderd

Topicstarter
Padschild schreef op dinsdag 04 september 2007 @ 14:23:
[...]


Wat is dat CGI script dan waarnaar je post?
Ik veronderstel dat dit op de servers van telenet staat. Maar dit is het enige waarmee ik een formulier kan maken.

  • Padschild
  • Registratie: September 2004
  • Laatst online: 28-11-2020
Verwijderd schreef op dinsdag 04 september 2007 @ 14:24:
[...]


Ik veronderstel dat dit op de servers van telenet staat. Maar dit is het enige waarmee ik een formulier kan maken.
Dat is dus waarschijnlijk niet het geval. Waar heb je dit script vandaan? Telenet? Ik zie dat je het script waarschijnlijk hier vandaan hebt:

http://users.skynet.be/javascript/forms/verplveld.htm

Misschien verstandig om daar support te vragen?

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ten eerste welkom op GoT :)

Als ik zo het script bekijk, dan zeg ik: neem eens contact op met de maker(s) van het script. Het is expliciet niet de bedoeling dat wij zondermeer jouw problemen gaan oplossen.

Zoals je hier (Webdesign, Markup & Clientside Scripting Policy) kan lezen, vragen wij zelfinzet van de gebruiker zelf. Het idee is dat wij als een community elkaar verder helpen ipv. cart blanche je probleem oplossen.

Dit topic gaat op slot, je mag best een nieuw topic openen, mits je je aan de voorwaarden houdt zoals hierboven gesteld. Voor de leesbaarheid is het ook belangrijk om je code tussen code tags te plaatsen. Zie ook: Overzicht van UBB-codes.

Tot slot: als je een nieuw topic opent, maak dan een testcase en geef dan expliciet aan waar het niet aan werkt. Wat je hebt gezocht, wat niet de oplossing was en geef zelf aan waar je denkt waar het probleem ligt. Als ik je zo hoor, dan lijkt het me verstandig om eerst even wat tutorials door te lezen. Dit is redelijk basic namelijk :)

Succes verder

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.

Pagina: 1

Dit topic is gesloten.