[英]Disabling an input when a checkbox is checked
I need to disable a cmp when a checkbox is checked, I tried this: 选中复选框时,我需要禁用cmp,我尝试过这样:
<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">
Sorry for my English, I'm Brazilian. 对不起我的英语,我是巴西人。
Your addEventListener
is wrong. 您的addEventListener
错误。 You're calling the function instead of passing it. 您在调用函数而不是传递它。 Your function can also be simplified a bit. 您的功能也可以简化一些。 Try this: 尝试这个:
function desativar() {
document.getElementById("salario").disabled = document.getElementById("SemPretencao").checked;
}
document.getElementById("SemPretencao").addEventListener("click", desativar, false);
I found some issues in your code. 我在您的代码中发现了一些问题。 The x definition should have been inside the function. x定义应该已经在函数内部。 The eventListener was messing, it should have listen for the change event. eventListener混乱了,它应该侦听change事件。 I put this listener inside the HTML element (subject to debate, but working). 我将这个侦听器放在HTML元素中(有争议,但可以正常工作)。
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()">
Just change your "click" event to change, remove the parentheses after desativar
, and move the x
variable inside the function : 只需更改您的“ click”事件即可进行更改,在desativar
之后删除括号,然后将x
变量移至函数内部:
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.