J'ai besoin de désactiver un cmp lorsqu'une case est cochée, j'ai essayé ceci:

<script language="text/javascript">

var x = document.getElementById("SemPretencao").checked;

function desativar() {

	if (x==true) {
		alert("Seu Babacaum");
		document.getElementById("salario").disabled=true;
	} else {
		alert("Babaquara");
		document.getElementById("salario").disabled=false;
	}

}

document.getElementById("SemPretencao").addEventListener("click", desativar();, false);

</script>

inputs:

    <a class="field_names">Pretenção Salarial: </a> <input type="number" class="number_inputs" name="salario" id="salario"> <br>
	<a class="field_names">Não Tenho Pretenção Salarial </a> <input type="checkbox" class="checkbox_input" name="SemPretencao" id="SemPretencao">

Désolé pour mon anglais, je suis brésilien.

-1
tlckpl 7 août 2016 à 03:54

3 réponses

Meilleure réponse

Votre addEventListener est faux. Vous appelez la fonction au lieu de la transmettre. Votre fonction peut également être un peu simplifiée. Essaye ça:

function desativar() {
  document.getElementById("salario").disabled = document.getElementById("SemPretencao").checked;
}

document.getElementById("SemPretencao").addEventListener("click", desativar, false);

Exemple de travail

2
Jack 7 août 2016 à 01:05

J'ai trouvé des problèmes dans votre code. La définition de x aurait dû être à l'intérieur de la fonction. L'événement eventListener était en désordre, il aurait dû écouter l'événement de changement. J'ai mis cet écouteur à l'intérieur de l'élément HTML (sujet à débat, mais fonctionnant).

function desativar() {
var x = document.getElementById("SemPretencao").checked;
	if (x==true) {
    	alert("Seu Babacaum");
		document.getElementById("salario").disabled=true;
	} else {
		alert("Babaquara");
		document.getElementById("salario").disabled=false;
	}

}
    <a class="field_names">Pretenção Salarial: </a> <input type="number" class="number_inputs" name="salario" id="salario"> <br>
	<a class="field_names">Não Tenho Pretenção Salarial </a> <input type="checkbox" class="checkbox_input" name="SemPretencao" id="SemPretencao" onchange="desativar()">
0
technico 7 août 2016 à 01:03

Modifiez simplement votre événement "click" pour le modifier, supprimez les parenthèses après desativar et déplacez la variable x à l'intérieur de la fonction:

function desativar() {
    var x = document.getElementById("SemPretencao").checked;
    if (x==true) {
        alert("Seu Babacaum");
        document.getElementById("salario").disabled=true;
    } else {
        alert("Babaquara");
        document.getElementById("salario").disabled=false;
    }

}

document.getElementById("SemPretencao")
 .addEventListener("change", desativar, false);
0
kemiller2002 7 août 2016 à 01:06