11543 sujets

JavaScript, DOM et API Web HTML5

Bonjour, je suis en train de modifier un forum pour en faire un forum multilingue.
Dans le profil, en plus de la langue du forum (select box), on peut choisir quelles langues on veut afficher (checkboxes).

Lorsqu'on a choisi un item dans la selectbox, il y a un onChange qui désactive la checkbox correspondante.
Ca ça marche.
Mais j'aimerais qu'également, les autres checkboxes s'activent lorsque le onchange a désactivé une checkbox.
Comment je peux faire ? En sachant que le nombre d'éléments qui s'affiche est dynamique et que donc je peux pas faire ça en "dur"... merci!

<script type="text/javascript">
<!--
function cocherMLCases(value) {
	document.getElementById('ML-'+value).disabled='true';
	document.getElementById('ML-'+value).checked='true';
}
// -->
</script>


Mes checkboxes ont pour nom showlang[].
Il faudrait donc que je complète ma fonction pour qu'il enable tous les showlangs sauf celui qui a pour ID ('ML-'+value)...
Modifié par gordie (17 Sep 2007 - 17:44)
j'ai trouvé, pour ceux que ça intéresse...
<html lang="en">
<head>
<title>checkbox disabling</title>
<script type="text/javascript">
<!--
function cocherMLCases(form,inputName,valeur) {
	
	var inputs = form.elements[inputName];
	for (var i = 0; i < inputs.length; i++) {
		var input = inputs[i];
			if (input.value == valeur) {
				input.disabled = true;
				input.checked = true;
			}
			else {
				input.disabled = false;
			}
	}
}
// -->
</script>
</head>
<body>
<form name="aForm" action="">
<select name="form[language]" onChange="cocherMLCases(this.form, 'showlang[]', this.value)">
  <option value="Dutch">Dutch</option>
  <option value="English">English</option>
  <option value="French">French</option>
</select>
<p>
<label> Dutch
<input type="checkbox" name="showlang[]" id="ML-Dutch" value="Dutch" checked disabled>
</label>
<label> English
<input name="showlang[]" id="ML-English" type="checkbox" value="English">
</label>
<label> French
<input type="checkbox" id="ML-French" name="showlang[]" value="French">
</label>
</p>
</form>

</body>
</html>
[/i]