Controle in tekstvak

Status
Niet open voor verdere reacties.

gebruiker35

Gebruiker
Lid geworden
29 mrt 2008
Berichten
434
Ik ben nieuw met javascript, heb al gegoogled, maar kom er niet uit. Hoe kan ik controleren of een tekstvak het huidige jaartal of het jaartal daarop in zich heeft staan, en zo niet een foutmelding geven?
 
var d = new Date();
if (parseInt(document.getElementById("id_van_je_textbox").Text) => d.getFullYear())
{
alert('hoera, groter gelijk huidig jaar');
}

zoiets?
 
Misschien had ik wat duidelijker moeten zijn. Het gaat om een lap tekst, een nieuwbericht. Daarin MOET een jaartal staan, in verband met het archief dat wordt opgebouwd. (7 juli is ieder jaar toch weer een andere dag he) Dus ik heb niet een vak met een jaartal, maar een vak met tekst waar een jaartal in moet staan..
 
Je kunt dit controleren met de indexOf() functie van javascript

var d = new Date();
var jaar = d.getFullYear();
var jaar_er_op = jaar + 1;
var str = document.getElementById("id_van_je_textbox").Text;
if (str.indexOf(jaar) == -1) && (str.indexOf(jaar_er_op) == -1)
{
jaar niet gevonden
}

zoiets?
 
het werkt niet egt

PHP:
<script type="text/javascript">
var d = new Date();
var jaar = d.getFullYear();
var jaar_er_op = jaar + 1;
var str = document.getElementById("tekst_origineel").Text;
if (str.indexOf(jaar) == -1) && (str.indexOf(jaar_er_op) == -1)
{
jaar niet gevonden
}				
</script>
		</td>
		</tr>
	<tr>
		<td colspan="3" bgcolor="#255E99">
		<p align="center">
		<textarea rows="1" name="titel_origineel" cols="101" class="inputbox" tabindex="1"><? echo $row['titel_origineel'];?></textarea></td>
	</tr>
	<tr>
		<td colspan="3" bgcolor="#255E99">
		<p align="center">
		<textarea rows="15" name="tekst_origineel" cols="101" class="inputbox" tabindex="2" id="tekst_origineel"><? echo $row['tekst_origineel'];?></textarea></td>
	</tr>
 
je moet ook niet alles letterlijk overnemen he!

jaar niet gevonden
zou je even om moeten bakken naar:

alert('jaar niet gevonden');

probeer het dan nog eens.

Je hebt ook helemaal geen onclick event of een onsubmit event van je form die naar de javascript functie verwijst! Dat gaat niet werken zo lijkt me.
 
Laatst bewerkt:
ik zei net al ik ben een beginner. ga dat alert erin zetten, en dan in dat textarea onchange??? (moet gelijk zichtbaar worden)
 
Ik zou meer iets van dit verwachten:

Code:
<html>	
	<head>
		<title>test</title>
		<script type="text/javascript">
			function form_check()
			{
				var d = new Date();
				var jaar = d.getFullYear();
				var jaar_er_op = jaar + 1;
				var str = document.getElementById("ta1").value;
				if ((str.indexOf(jaar)==-1) && (str.indexOf(jaar_er_op)==-1)) {
					alert('jaar niet gevonden');
				}
				else {
					alert('jaar wel gevonden');
				}
			}

			</script>
	</head>
	<body>
		<form name="testform" method="post" action="default.htm">
			<textarea rows="15" name="ta1"></textarea>
			<input type="button" name="button1" value="submit" onClick="form_check();">
		</form>
	</body>
</html>
 
HTML:
<textarea onkeypress="form_check()"></textarea>
<textarea onkeyup="form_check()"></textarea>
<textarea onkeydown="form_check()"></textarea>

Probeer maar eens één die.
 
Beter is denk ik, om dan het onChange event te gebruiken en die te laten verwijzen naar de functie form_check.

dus:

HTML:
<textarea onchange="form_check()"></textarea>

op het moment dat je dan het tekstvak (de textarea) verlaat, wordt de form_check functie aangeroepen.
 
je hebt gelijk, ik moet beter lezen.

Ik zou dan wel even de alert's uitschakelen, want daar word je dan goed gek van.
 
Als je deze code kopieert en plakt in een nieuw HTML document, zul je zien dat het werkt.

HTML:
<html>	
	<head>
		<title>test</title>
		<script type="text/javascript">
			function form_check()
			{
				var d = new Date();
				var jaar = d.getFullYear();
				var jaar_er_op = jaar + 1;
				var str = document.getElementById("ta1").value;
				if ((str.indexOf(jaar)==-1) && (str.indexOf(jaar_er_op)==-1)) {
					document.getElementById("validatieTextBox").value = 'Jaar niet gevonden';
				}
				else {
					document.getElementById("validatieTextBox").value = 'Jaar gevonden';
				}
			}

			</script>
	</head>
	<body>
		<form name="testform" method="post" action="default.htm">
			<textarea rows="15" name="ta1" onKeyUp="form_check();"></textarea>
			<input type="textbox" name="validatieTextBox" value="">
		</form>
	</body>
</html>
 
Moet
HTML:
<textarea rows="15" name="ta1" onKeyUp="form_check();"></textarea>
<input type="textbox" name="validatieTextBox" value="">
niet
HTML:
<textarea rows="15" name="ta1" id="ta1" onKeyUp="form_check();"></textarea>
<input type="textbox" name="validatieTextBox" id="validatieTextBox" value="">
zijn? Je gebruikt immers "getElementById", dus dan moeten die elementen wel een id hebben.
 
Correct. My mistake.

Mijn voorbeeld werkt echter wel gewoon.
 
@nire,

Dat je voorbeeld werkt zegt eigenlijk niets. Het blijft een feit dat het incorrect is, en in sommige (toekomstige) browsers werkt het misschien niet. Vandaar dat het toch altijd goed is om de standaard aan te houden.

Verder niets op aan te merken hoor ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan