Ik zou graag doormiddel van een druk op een checkbox een textarea laten verschijnen, maar de vorige textarea mag niet leeg zijn. bij dit laatste loopt het fout, ik heb het volgende in elkaar geknutselt.
hij doet het niet meer sinds ik de check om te kijken of de vorige leeg is toe gevoegt heb, dit is een van de weinige keren dat ik met javascript bezig ben dus zie ik niet direct de fout...
Er staat "<p id=id="textarea">", dat lijkt me niet kloppen.
Ook weet ik niet of je inline-elementen (de <p>-tag) kunt gebruiken voor het tonen / verbergen van blokken, ik denk dat je hiervoor een block-level element (bijvoorbeeld <div>) moet gebruiken, en ook (naast het display-attribuut) moet werken met visibility.
Het belangrijkste is dat je of box.checked je box een variable moet geven en het is checked = true en niet gewoon checked ^^
edit1: werkt nog niet helemaal zie ik, de alert doet het niet !! maak ik vanmidddag af
edit2: Het goede script je kan ook maken dat de checkbox pas ingedrukt kan worden (enabled is) wanneer er iets is ingevuld in je textarea1. Maar dat is misschien maar een ideetje ;-)
@ fangorn: als het goed is kan je alle atributen verbergen. tenminste ik weet dat je tables, div's, afbeeldingen, textareas en spans zowieso kan verbergen. Dus zal het wel bij alles kunnen
Ok het werkt ook prima bij mij bedankt voor al je hulp!
nu zou ik enkel het script meerdere keren achter elkaar willen gebruiken, en dus moet het met parameters werken. Ik heb al probere knutselen maar het loopt weer van de eerste keer mis
de funtie zou zo moeten komen: a('checkboxNaam','vorigeTekstveldNaam','teTonenVeldNaam')
ik dacht ik zet de parameters in de functie en ik verrander de namen door de namen van de variabelen maar het deed niet veel meer
<html>
<head>
<title>Untitled</title>
</head>
<script language="JavaScript" type="text/javascript">
<!--
function a()
{
var aa = Array('p1','p2','p3','p4'); <!-- voeg hier je even en oneven id's van je checkboxen in !!! -->
var ab = Array('area1','area3','area5','area7'); <!-- // voeg hier je oneven textarea id's in !!! -->
var ac = Array('area2','area4','area6','area8'); <!-- // voeg hier je even textarea id's in !!! -->
var y = ab.length;
for(x=0; x<y; x++)
{
{
if((document.getElementById(aa[x]).checked == true)&&(document.getElementById(ab[x]).value!==""))
{document.getElementById(ac[x]).style.display ='block';}
else
{
if((document.getElementById(aa[x]).checked == true)&&(document.getElementById(ab[x]).value==""))
{alert("Je hebt nog niets in je vorige pagina geschreven"); document.getElementById(ac[x]).style.display ='none';}
}
}
}
}
</script>
</head>
<body>
<form name="review" method="post">
<p id="area_none"><textarea id="area1"></textarea></p>
<input type="checkbox" id="p1" onClick="a()">
<p id="textarea"><textarea id="area2" style='display:none'></textarea></p>
<p id="area_none"><textarea id="area3"></textarea></p>
<input type="checkbox" id="p2" onClick="a()">
<p id="textarea"><textarea id="area4" style='display:none'></textarea></p>
<p id="area_none"><textarea id="area5"></textarea></p>
<input type="checkbox" id="p3" onClick="a()">
<p id="textarea"><textarea id="area6" style='display:none'></textarea></p>
<p id="area_none"><textarea id="area7"></textarea></p>
<input type="checkbox" id="p4" onClick="a()">
<p id="textarea"><textarea id="area8" style='display:none'></textarea></p>
<!-- voeg hier eventueel nog meer van deze stukken toe !!
let op als je hier iets toe voegt moet je dat in de array in de functie ook doen !!! -->
</form>
<body>
</body>
</html>
Ok ik snap niets van de code maar ik denk niet dat het juist in elkaar zit, het algoritme gaat zo:
als er in de eerste textarea iets ingevult is kan je nog een textarea toevoegen door de checkbox te gebruiken, als er in die 2de textarea iets geschreven is heb je de mogelijkheid nog een derde toe te voegen enzovoort ....