2017-01-18 90 views
0

我已經搜索了所有關於它的網頁,但是我找不到沒有jQuery的javascript解決方案。問題如下:我有一整套無線電元素,根據數據庫數據應該檢查或取消選中。這是完成的。現在我必須使單選按鈕「不可檢查」通過表單更改數據庫數據。總是檢查輸入無線電元素結果

我試圖使它在普通的JavaScript,因爲我現在不想考慮前端庫。

的HTML如下:

<td> 
<input class="graphs" name="g4" value="S" defaultvalue="N" checked="true" type="radio"> 
</td> 
<td> 
<input class="graphs" name="g5" value="S" defaultvalue="N" type="radio"> 

的JavaScript如下:

<script type="text/javascript"> 
    window.onload = (function(){ 
    return function(){ 
     var allRadios = document.getElementsByClassName('graphs'); 
     var x = 0; 
     for(x = 0; x < allRadios.length; x++){ 

      allRadios[x].onclick = function() { 
       if(this.checked == true){ 
        this.checked = false; 
       }else{ 
        this.checked = true 
       } 
      }; 
     } 
    }})(); 
    </script> 

我試着調試,結果總是相同的:如果執行第一和始終如此,即使未檢查該元素。

我試過jsfiddle中的相同腳本,它的工作原理正確。這是我的瀏覽器的問題嗎?

在此先感謝。如果你想有一個收音機是uncheckable的可以靜態禁用它

+1

'this.checked =!this.checked' – Pointy

+1

考慮使用複選框代替或添加一個額外的空選項的單選按鈕。用戶不會期望您能夠取消選中單選按鈕 – Halcyon

+1

而不是單選按鈕,您對每個單選按鈕都有不同的名稱。如果你想檢查/取消選中sme元素並操作一些數據,最好使用複選框 –

回答

1

this.checked == true中的其他塊不是分配

1

,你不需要使用任何的JavaScript。

對於Unckecked禁用

<input type="radio" name="foo" value="N" disabled> 

四經過禁用

<input type="radio" name="foo" value="N" checked disabled> 
+0

對不起我的英文,我希望按鈕是可檢查和無法檢查的,這是在JavaScript中用單選按鈕實現的 – softwareplay

相關問題