Controleren of veld leeg is

Status
Niet open voor verdere reacties.

Rooie Darp

Gebruiker
Lid geworden
25 mrt 2007
Berichten
265
Ik wil controleren of er in veld "naam2" wat is ingevult als er bij veld "Intro" Ja staat
Ik heb wat gezocht op google maar kom er niet uit!

Dit heb ik:
Code:
<script type="text/javascript">

function controleer(intro)
{
  if(myform.Intro.value == "Ja" || myform.naam2.value == "")
  { alert("Je de naam van de introduce nog niet invult!!");
  return (false);
   }
}
</script>
function controleer(naam2) heb ik ook geprobeert en daarmee lukte het ook niet :confused:

Code:
<form name="myform" action="feest1a.asp" method="post"  onSubmit="return controleer(this.form)" />
  <td>Introducé:</td><td>
  <select name="Intro"><option selected></option><option value="Ja"><% Response.Write ("Ja") %></option><option value="Nee">Nee</option></select>
</td></tr>
  <tr>
  <td>Naam Introducé:</td><td><input type="text" name="naam2" size="70%" ></td></tr>
  <tr>

<input type="submit" value="volgende" ></form>

Maar dan geeft hij bij zowel Ja als Nee een alert.

Wie kan me hierbij helpen?

Alvast bedankt

Gerrit
 
Laatst bewerkt:
Hoi Rooie Darp,
  • Om een element met javascript vast te pakken, kan je dat het beste een ID geven in plaats van een name.
    Dan kan je een variabele maken met de naam van de ID, en die bij z'n lurven grijpen met document.getElementById('...'), en die variabele verder gebruiken om de value op te vragen.
  • De twee streepjes || betekenen in javascript "of" (dus als het naam-vak leeg is, komt er altijd een alert!), maar jij bedoelt "en". Dat laatste gaat met dubbele &-tekens: &&.
  • Bij "return false" moet de "false" niet tussen haakjes.
  • Hoe de <% Response.Write ("Ja") %> er in terecht is gekomen weet ik niet: dat is asp-code, die wordt op de server uitgevoerd. Het lijkt me, dat dat gemist kan worden.
Behalve het niet invullen van de naam van de introducé zijn er denk ik nog een paar mogelijke foute invullingen, die ook afgevangen moeten worden.

Ik zit aan het volgende te denken:
HTML:
<form id="myform" action="feest1a.asp" method="post">
	<table>
		<tr>
			<td>Introducé:</td>
			<td><select id="Intro">
				<option id="sel" value="0">vul Ja of Nee in</option>
				<option value="Ja">Ja</option>
				<option value="Nee">Nee</option></select>
			</td>
		</tr>
		<tr>
			<td>Naam Introducé:</td>
			<td><input type="text" id="naam2" size="70" /></td>
		</tr>
	</table>
	<p><input type="submit" value="volgende" onclick="return controleerIntro()" /></p>
</form>
En als javascript erbij:
[JS]<script type="text/javascript">
// <![CDATA[
function controleerIntro(){
var intro=document.getElementById('Intro');
var naam2=document.getElementById('naam2');
if (intro.value == "Ja" && naam2.value == ""){
alert("Opgeven is niet gelukt.\n\nJe hebt de naam van de introducé nog niet ingevuld!!");
return false;
}
if (intro.value == "0" && naam2.value == ""){
alert("Opgeven is niet gelukt.\n\nJe hebt nog niet met 'Nee' ingevuld dat je geen introducé meeneemt!!");
return false;
}
if (intro.value == "0" && naam2.value != ""){
alert("Opgeven is niet gelukt.\n\nJe hebt een naam voor je introducé ingevuld,\nmaar nog niet met 'Ja' ingevuld dat je een introducé meeneemt!!");
return false;
}
if (intro.value == "Nee" && naam2.value != ""){
alert("Opgeven is niet gelukt.\n\nJe hebt ingevuld dat je geen introducé meeneemt,\n maar toch een naam ingevuld!!\n\n Svp 'Ja' invullen of de naam wissen.");
return false;
}
}
// ]]>
</script>
[/JS]
Een "\n" die in een alert zit, betekent bij javascript-code dat in het mededelingenvenstertje naar de volgende regel gegaan wordt (is dus hetzelfde als de <br /> in html-code). Een dubbele \n\n is daarmee een lege regel ertussen.

Het bovenstaande in een testpagina gemonteerd:

Met vriendelijke groet,
CSShunter
 
@ CSShunter. Bedankt voor je uitgebreide antwoord. :thumb:

Ik ga er morgen of donderdag mee aan de slag, mochten er nog vragen zijn dan meld ik me.

Gerrit
 
Ben natuurlijk al aan de slag gegaan, en het werkt perfect!!!
Het ook duidelijk uitgelegd. Ik moet nog een paar velden controleren ik denk dat ik nu weet hoe ik het moet doen.

Nogmaals heel erg bedankt.

Gerrit
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan