knop 'submit' krijg ik niet op enable

Status
Niet open voor verdere reacties.

thomas lemmens

Gebruiker
Lid geworden
8 mei 2009
Berichten
36
hey

ik geraak er weer eens niet uit

ik probeer een controle voor mijn formulier te maken met javascript. maar het laatste gedeelte werkt niet.

[JS]
var contact = new Array("naam","woonplaats","voornaam","mail","textvak");
var goed =true;
function controle(){
for(i=0;i<=contact.length;i++){
if(document.form.elements[contact].value == ""){
goed=false;
}
else{}
}

if(goed==true){
document.form.elements['submit'].disabled = false;

}
}
[/JS]

de for lus controleert al mijn velden of ze zijn ingevuld. deze werkt daar ben ik zeker van.
als alles is ingevuld moet de knop verzenden beschikbaar zijn.
dit gedeelde werkt niet. ik weet dat de regel hiervoor werkt. zonder if werkt het ook niet.
dus met andere woorden alles apart werkt maar als ik beide zaken te samen zet werkt het niet meer.

an iemand mij helpen?
 
Mischien moet je even wat HTML erbij geven. In ieder geval, dit is de correcte verbeterde code:
[JS]var contact = ["naam","woonplaats","voornaam","mail","textvak"];
var goed = true;

function controle()
{
var i, l = contact.length;

for(i=0; i<l; i++)
{
if(document.form.elements[contact].value == "")
{
goed = false;
}
}

if(goed === true)
{
document.form.elements['submit'].disabled = false;
}
}[/JS]omdat je 1 te ver loopte, zal het altijd false worden.


:thumb:
 
nu werkt het wel, danku!

dus als ik het goed begrijp. ging ik met mijn for lus naar een locatie in mijn Array die niet bestond. waardoor mijn script niets meer uitvoerde na de for lus.
 
Jazeker, dat was het probleem. Er stond in werkelijkheid dus dit:
[JS]for(i=0; i<=5; i++)
{
//
}[/JS], wat dus 6x loopt! (0, 1, 2, 3, 4, 5) - en je array had maar 5 plaatsen! (0, 1, 2, 3, 4). Omdat je 1 te ver ging omdat je conditie <= was ipv. <, liep ie dus tegen een lege plek op (sinds arrays in JS dynamisch zijn). Je test-if was dus dit:[JS]document.form.elements[contact].value == ""[/JS]. Je kreeg je dus dit:[JS]null == ""[/JS] (null, omdat document.forms[...] niet bestaat) En sinds null toevallig 'gelijk' is aan een lege string (omdat JS erg dynamische types heeft (auto-omzetten van types)), werdt dit dus true. Voila, variabele 'goed' werd op false gezet.


:thumb:
 
Laatst bewerkt:
een tweede formulier met het zelfde script

hey

nu dat het bij 1 formulier werkte dagt ik om het zelfde script te gebruiken voor twee formulieren.

voor het eerste form werkt het nog steeds maar bij de tweede loopt het mis.
waarschijnlijk weer een domme fout maar ik zie ze niet.

javascript:
[JS]
var mail=true;
var velden;



function inputControle(id, formulier){
if (formulier == 1) {
velden = new Array("naam", "woonplaats", "voornaam", "mail", "textvak");
}
else{
velden=new Array("bedrijf","naam","woonplaats","voornaam","mail","tel");
}

if (document.form.elements[id].value != "") {
if (id == "mail") {
if (document.form.elements[id].value.indexOf("@") == -1) {
document.getElementById(id).src = "../../Image/symbool/incorrect.png";
mail=false;
}
else{
document.getElementById(id).src = "../../Image/symbool/correct.png";
mail=true;
}
}
else{
document.getElementById(id).src = "../../Image/symbool/correct.png";
}
}
else{
document.getElementById(id).src="../../Image/symbool/incorrect.png"
}

var goed = true;

var i, l = velden.length;

for (i = 0; i < l; i++) {
if (document.form.elements[velden].value == "") {
goed = false;
}
}
if (goed == true && mail == true) {
document.form.elements['submit'].disabled = false;

}
else{
document.form.elements['submit'].disabled = true;
}
}

[/JS]

formulier 1:
HTML:
<form name="form" method="post" action="mailto:curlingclubflanders@gmail.com">
					<table>
					    <tr>
					       	<td class="rechts">
					       		<select name="aanspreekTittel">
									<option>Dhr.</option>
									<option>Mvr.</option>
								</select>
							</td>                              		<td ></td>					        
					    </tr>
					    <tr>
					        <td class="rechts">Naam: *</td>         <td><input onkeyup="javascript:inputControle('naam','1');" type="text" name="naam" size="20" maxlength="30"><img id="naam" src="../../Image/symbool/incorrect.png"></td>
							<td class="rechts">Voornaam: *</td>	 	<td><input onkeyup="javascript:inputControle('voornaam','1');" type="text" name="voornaam" size="20" maxlength="30"><img id="voornaam" src="../../Image/symbool/incorrect.png"></td>
					    </tr>
					    <tr>
					        <td class="rechts">Woonplaats: *</td>   <td><input onkeyup="javascript:inputControle('woonplaats','1');"" type="text" name="woonplaats" size="20" maxlength="30"><img id="woonplaats" src="../../Image/symbool/incorrect.png"></td>  
							<td class="rechts">E-mail: *</td>       <td><input onkeyup="javascript:inputControle('mail','1');" type="text" name="mail" size="30" maxlength="50"><img id="mail" src="../../Image/symbool/incorrect.png"></td>     
					    </tr>
					    <tr>
					        <td class="rechts">Tel-nr:</td> 		<td><input type="text" name="tel" size="10" maxlength="20"></td> 
					    </tr>
						<tr> 
							<td class="rechts">Mededeling: *</td>					 
					    </tr>
						<tr>
							<td></td>								<td colspan="4"><textarea onkeyup="javascript:inputControle('textvak','1');" name="textvak" rows="4" cols="50"></textarea><img id="textvak" src="../../Image/symbool/incorrect.png"></td>
						</tr>
						<tr> 
							<td ></td>								<td><input type="reset" value="Beginwaarden"></td><td><input name="submit" type="submit" disabled="true" value="Verzenden"></td>
					    </tr>
					</table>
					<p class="notitie">
						*Verplichte velden
					</p>
					
				</form>

formulier 2:

HTML:
<form name="form" method="post" action="mailto:curlingclubflanders@gmail.com">
					<table>
						<tr>
						    <td class="rechts">Aantal personen: **</td>    		<td> 
																		   			<select name="aanspreekTittel">
																						<option>8</option>
																						<option>9</option>
																						<option>10</option>
																						<option>11</option>
																						<option>12</option>
																						<option>13</option>
																						<option>14</option>
																						<option>15</option>
																						<option>16</option>
																					</select>					       		
					       														</td>					        
					    </tr>
						<tr>
							<td class="rechts">Bedrijf/Vereniging: *</td>       <td><input onkeyup="javascript:inputControle('bedrijf','2');" type="text" name="bedrijf" size="20" maxlength="30"><img id="bedrijf" src="../../Image/symbool/incorrect.png"></td>
							<td class="rechts">Betalingswijze: </td>			<td>Overschrijving<input type="radio" name="betaal" value="Overschrijving">Contant<input type="radio" name="betaal" value="Contact"></td>
						</tr>
					    <tr>
					       	<td class="rechts">Gegevens contactpersoon:</td>    <td></td>					        
					    </tr>
					    <tr>
					        <td class="rechts">Naam: *</td>          			<td><input onkeyup="javascript:inputControle('naam','2');" type="text" name="naam" size="20" maxlength="30"><img id="naam" src="../../Image/symbool/incorrect.png"></td>
							<td class="rechts">Voornaam: *</td>	 			    <td><input onkeyup="javascript:inputControle('voornaam','2');" type="text" name="voornaam" size="20" maxlength="30"><img id="voornaam" src="../../Image/symbool/incorrect.png"></td>
					    </tr>
					    <tr>
					        <td class="rechts">Woonplaats: *</td>    			<td><input onkeyup="javascript:inputControle('woonplaats','2');" type="text" name="woonplaats" size="20" maxlength="30"><img id="woonplaats" src="../../Image/symbool/incorrect.png"></td>  
							<td class="rechts">E-mail: *</td>        			<td><input onkeyup="javascript:inputControle('mail','2');" type="text" name="mail" size="30" maxlength="50"><img id="mail" src="../../Image/symbool/incorrect.png"></td>     
					    </tr>
					    <tr>
					        <td class="rechts">Tel-nr: *</td> 					<td><input onkeyup="javascript:inputControle('tel','2');" type="text" name="tel" size="10" maxlength="20"><img id="tel" src="../../Image/symbool/incorrect.png"></td> 
					    </tr>
						</tr>
						<tr> 
							<td ></td>								 			<td><input type="reset" value="Beginwaarden"></td><td><input type="submit" disabled="true" value="Verzenden"></td>
					    </tr>
					</table>
					<p class="notitie">
						*Verplichte velden
						<br/>
						**In het geval dat u de tweede groep bent die zich inschrijft voor deze dag, wordt er nagegaan of we bijde groepen kunnen nemen.
						als uw groep te groot blijkt te zijn, zullen we een mail sturen om met u een andere datum af te spreken.
						 
					</p>
					
				</form>

een voorbeeld zie je op volgende linken:

form 1: http://www.belgiumcurling.be/ccflanders/html_ned/club_contact_ned.htm
form 2: http://www.belgiumcurling.be/ccflanders/html_ned/initiatie_reserveren_ned.htm
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan