Hoi,
Ik begin net met javascript te leren en loop tegen een probleempje aan.
Ik heb een formulier en nu wil ik dat als er op een button wordt geklikt alle formuliervelden worden gewist, maar NIET via de input:reset van html.
Dus dit wil ik via javascript.
Dit is wat ik heb:

<script>
	function reset() {
		document.getElementById("name").value = "";
		document.getElementById("email").value = "";
		document.getElementById("comment").value = "";
	}
</script>

De id="name" en id="email" zijn input velden en de id="comment" is een textarea. Bovenstaande functie maakt wel de input velden leeg, maar niet de textarea. Hoe komt dat?
Kan het zijn dat dat komt omdat ik voor de textarea tinyMCE gebruik?
Hoe ziet precies je button er uit?

<textarea id="email">[email protected]</textarea>
<textarea id="naam">Frank</textarea>
<button type="button" id="reset-btn">Reset</button>



window.onload = function() {
	formfields = ["email", "naam"];

	document.getElementById("reset-btn").onclick = function() {
		for(var i = 0 ; i < formfields.length ; i++) {
			document.getElementById(formfields[i]).value = "";
		}
	}
  
}

Ik heb hier dan twee closures gebruikt. Misschien zie je liever standaard functies?


function initialize() {
	document.getElementById("reset-btn").onclick = buttonEvent;  
}

function buttonEvent() {
	formfields = ["email", "naam"];

	for(var i = 0 ; i < formfields.length ; i++) {
		document.getElementById(formfields[i]).value = "";
	}
}

window.onload = initialize;
@Frank: Ik heb (je eerste) script gebruikt, die is handig, want direct toepasbaar op alle typen formfields. Dus de input-velden name en email worden keurig leeggemaakt, maar de textarea niet. Ligt dit misschien aan het gebruik van tinyMCE voor de textarea? En zo ja, hoe zou ik dat kunnen oplossen?
Ik denk zo:

tinymce.get("textarea_id").setContent('');
Fantastisch! Het werkt. Dank je wel.
Maar waarom zou je hier Javascript voor gebruiken? De html-knop is er niet voor niets (al kom ik hem zeer zelden nog tegen!):

<input type="reset" value="Maak alle velden leeg">


Daarnaast kan het ook met 1 regel code, zonder jQuery en/of loops:
document.getElementById("myForm").reset();

Reageren