2013-04-02 43 views
0

嗨我想操纵一个复选框。如果您选中此复选框,则其余复选框将被禁用。我到目前为止的工作。除非你取消选中。复选框仍然被禁用。我正在寻找也许是一种方法来取消禁用虚假。Onclick文档元素永久禁用?

<input name="Package" type="checkbox" id="Package" on onClick="document.getElementById('Gala').checked = this.checked; document.getElementById('Gala').disabled=true; " value="1" maxlength="1" <?=($fullPackageYes)?> /> 
+0

尝试使用'onchange'取代'onclick' – Musa

+1

怎么样'的document.getElementById( '嘎拉')检查=的document.getElementById( '嘎拉')=禁用。 this.checked;' – david

+0

谢谢大卫!!!!它工作,你救了我(@ .o)b – Suno360

回答

2
<input name="Package" onclick="disable_checkboxes(this)" type="checkbox" id="Package" value="1" maxlength="1" <?=($fullPackageYes)?> /> 

<script> 
function disable_checkboxes(ele){ 

    if(ele.checked == 'checked'){ 
     document.getElementById('Gala').checked = 'checked'; 
     document.getElementById('Gala').disabled='disabled'; 
    }else { 
     document.getElementById('Gala').checked = ''; 
     document.getElementById('Gala').disabled=''; 
    } 
} 
</script> 

显然你的问题被解决了@大卫,不过我会强烈建议你给它更多的转换到像上面的代码,内联JavaScript不是很好的做法都没有。

+0

这的确是更干净的方法! – david

0

现场演示:JSFIDDLE

<input id="package" name="Package" type="checkbox" id="Package" value="1" maxlength="1" <?=($fullPackageYes)?> checked /> 

<input type="checkbox" id="Gala" value="1" maxlength="1"/> Gala 

<script> 
var Gala = document.getElementById('Gala'); 

document.getElementById('package').onclick=function(){ 
    Gala.disabled = this.checked ? "" : "disabled"; 
    Gala.checked = this.checked ? Gala.checked : ""; 
} 
</script> 
+0

如果您检查一个,然后检查另一个,另一个似乎禁用,但在您的演示 – Vector

+0

中检查,只是修复 –