Javascript 为什么单击后无法取消选中此复选框?
我目前正在尝试在我的网站上的表单中使用以下代码Javascript 为什么单击后无法取消选中此复选框?,javascript,html,forms,Javascript,Html,Forms,我目前正在尝试在我的网站上的表单中使用以下代码 <p class="formtag">Minimum Price: </p> <input type="number" style="width: 50px; margin-right: 15px;" name="minprice" id="minprice"> <p class="formtag">Maximum Price: </p> <input type="number" s
<p class="formtag">Minimum Price: </p>
<input type="number" style="width: 50px; margin-right: 15px;" name="minprice" id="minprice">
<p class="formtag">Maximum Price: </p>
<input type="number" style="width: 50px; margin-right: 15px;" name="maxprice" id="maxprice">
<p class="formtag">Show Only Free Resources </p>
<input type="checkbox" id="freecheck" onchange="disableprice()" name="freecheck" value="freeonly">
其思想是,如果选中该复选框,则最高和最低价格的输入字段将被禁用,否则它们应该是可编辑的
我遇到的问题是,一旦用户选中了复选框,就不能取消选中它。我目前正在努力找出原因,但我开始怀疑这与我使用的代码文档.getElementById('freecheck').checked=“true”
有关
有谁能告诉我如何解决此问题吗?您正在将值“true”指定给checked,然后检查其值,因此它总是
true
:
if(document.getElementById('freecheck').checked = "true") {
这是一个赋值,它应该是两个等号的比较。此外,正如@DavidThomas所述,checked
属性是布尔值,因此您应该检查布尔值true
值:
if(document.getElementById('freecheck').checked == true) {
或
您将值“true”指定给checked,然后检查其值,因此它总是
true
:
if(document.getElementById('freecheck').checked = "true") {
这是一个赋值,它应该是两个等号的比较。此外,正如@DavidThomas所述,checked
属性是布尔值,因此您应该检查布尔值true
值:
if(document.getElementById('freecheck').checked == true) {
或
参考:
参考:好的,这是您正在寻找的解决方案 这是你的新代码
<input type="checkbox" id="freecheck" onclick="myonclickhandler(this);" name="freecheck" value="freeonly">
这是您的javasript代码
<script type="text/javascript">
var t = document.getElementById("freecheck");
function myonclickhandler(t) {
if (t.checked) {
document.getElementById('minprice').value = "";
document.getElementById('minprice').disabled = "disabled";
document.getElementById('maxprice').value = "";
document.getElementById('maxprice').disabled = "disabled";
}
else {
document.getElementById('minprice').disabled = "false";
document.getElementById('maxprice').disabled = "false";
}
}
</script>
var t=document.getElementById(“freecheck”);
函数myonclickhandler(t){
如果(t.checked){
document.getElementById('minprice')。value=“”;
document.getElementById('minprice').disabled=“disabled”;
document.getElementById('maxprice')。value=“”;
document.getElementById('maxprice').disabled=“disabled”;
}
否则{
document.getElementById('minprice')。disabled=“false”;
document.getElementById('maxprice')。disabled=“false”;
}
}
希望这对你有所帮助好的,这是你一直在寻找的解决方案 这是你的新代码
<input type="checkbox" id="freecheck" onclick="myonclickhandler(this);" name="freecheck" value="freeonly">
这是您的javasript代码
<script type="text/javascript">
var t = document.getElementById("freecheck");
function myonclickhandler(t) {
if (t.checked) {
document.getElementById('minprice').value = "";
document.getElementById('minprice').disabled = "disabled";
document.getElementById('maxprice').value = "";
document.getElementById('maxprice').disabled = "disabled";
}
else {
document.getElementById('minprice').disabled = "false";
document.getElementById('maxprice').disabled = "false";
}
}
</script>
var t=document.getElementById(“freecheck”);
函数myonclickhandler(t){
如果(t.checked){
document.getElementById('minprice')。value=“”;
document.getElementById('minprice').disabled=“disabled”;
document.getElementById('maxprice')。value=“”;
document.getElementById('maxprice').disabled=“disabled”;
}
否则{
document.getElementById('minprice')。disabled=“false”;
document.getElementById('maxprice')。disabled=“false”;
}
}
希望这有助于像下面这样做,
它将在以下方面发挥作用:
更改javascript函数
function disableprice() {
if(document.getElementById('freecheck').checked) {
document.getElementById('minprice').value = "";
document.getElementById('minprice').disabled = true;
document.getElementById('maxprice').value = "";
document.getElementById('maxprice').disabled = true;
}
else {
document.getElementById('minprice').disabled = false;
document.getElementById('maxprice').disabled = false;
}
}
还可以找到工作小提琴
像下面这样做,
它将在以下方面发挥作用:
更改javascript函数
function disableprice() {
if(document.getElementById('freecheck').checked) {
document.getElementById('minprice').value = "";
document.getElementById('minprice').disabled = true;
document.getElementById('maxprice').value = "";
document.getElementById('maxprice').disabled = true;
}
else {
document.getElementById('minprice').disabled = false;
document.getElementById('maxprice').disabled = false;
}
}
还可以找到工作小提琴
它永远不会等于
“true”
(字符串),尽管它可能等于true
(布尔)。@DavidThomas实际上,正如您所知,Javscript是弱类型的,因此任何非空字符串==true@DavidThomas:好的,我为true
@gontrollez更改了最后一个“true”,现在你还没有从我的答案中复制出来吗?它永远不会等于“true”
(字符串),尽管它可能等于true
(布尔值)。@DavidThomas实际上,正如你所知,Javscript是弱类型的,所以任何非空字符串==true@DavidThomas:好的,我为true
@gontrollez更改了最后一个“true”,现在你还没有抄我的答案吗?这个答案对我有什么补充吗?你没有解释问题是什么,解决方案是相同的。你难道看不到不同的b/w文档。getElementById('freecheck')。检查和文档。getElementById('freecheck')。检查=='true'?这个答案对我的答案有帮助吗?您没有解释问题是什么,解决方案是相同的。难道您看不到差异b/w文档。getElementById('freecheck')。已检查和文档。getElementById('freecheck')。已检查=='true'??