2013-04-02 45 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

中檢查,只是修復 –