2013-12-18 88 views
0
$('.checkboxInTable').click(function(e){ 
    e.preventDefault(); 

    var selected = $(this); 
    selected.prop('checked', true); 
    //selected.attr('checked', true); 
    } 

.prop()不要在HTML添加任何檢查複選框手動不工作

ATTR添加checked="checked",但在視覺上沒有什麼變化

jQuery的V1.9

+1

你爲什麼要設置屬性?而不是檢查狀態 –

回答

0

可能有助於綁定文檔上的更改事件,如果您正在創建動態複選框。

嘗試使用e.stopPropagation()而不是e.preventDefault()並刪除返回false。在jQuery中返回false與e.stopPropagation()+ e.preventDefault()等效。 e.preventDefault()阻止複選框被檢查。

$(document).on("change",".checkboxInTable", function(e){ 
     e.preventDefault(); 
     var selected = $(this); 
     if(!$(selected).is(":checked")) // check first if the checkbox is checked or not 
      $(selected).prop('checked', true); // if not then check it, BUt when you want to uncheck, it will not allow you by using this method. 
    }); 
3

變化從click()change()事件 試試這個:

  $('.checkboxInTable').change(function(e){ 
       e.preventDefault(); 

       var selected = $(this); 
       selected.prop('checked', true); 
      }); 
+0

這將使複選框狀態始終處於選中狀態,即使您試圖取消選中。 –

+0

謝謝,但我認爲e.preventDefault();不適用於變化。我想阻止檢查然後檢查手冊 – gregouille

0

請嘗試此修復。 [編輯]抱歉重複,別人在我面前貼出了同樣的解決方案@Alessandro Minoccheri。

$('.checkboxInTable').change(function (e) { 
    e.preventDefault(); 

    var selected = $(this); 
    selected.prop('checked', true); 
} 
); 

===============
關於你的代碼 這行防止複選框的選擇,所以這將是因爲它而頁面瀏覽總是默認加載。即看起來像只讀?

e.preventDefault(); 

如果你想要的是檢查複選框,它的代碼將正確運行,它將保持檢查。

$('.checkboxInTable').click(function(e){ 
     //e.preventDefault(); 

     var selected = $(this); 
     selected.prop('checked', true); 
     //selected.attr('checked', true); 
     } 
0

我裙子使用

的onChange = 「plzCheck(本)」 的問題上我的HTML複選框

然後myCheckbox.checked = TRUE;