2009-08-28 120 views
1
var $field = $(this); 
      if ($field.is('input')) { 
       alert(1); 
       if ($field.attr('type') == 'checkbox') { 
        alert(2); 
        if ($field.attr('value') == "true") 
         return $field.attr('checked'); 
       } 

       return $field.val(); 
      } 

我想檢查複選框的值是否爲true我添加屬性checked = checked複選框。但我的代碼是錯誤的。請幫助me.thanksJquery複選框

+0

你能給更多的環境?目前尚不清楚「這」是什麼。 – ChaosPandion 2009-08-28 04:24:09

回答

6

更改條件

$("input:checkbox").val() == "true" 

和檢查的複選框就可以使用

$("input:checkbox").attr ("checked" , true); 

您可以選擇使用

$("input:checkbox") 

和值複選框使用

$("input:checkbox").val() 

如果要檢查所有屬性值true的複選框,然後就可以使用

$(document).ready (function() 
     { 
      var checkBoxes = $("input:checkbox");   
      checkBoxes.each (function() { 
       if ($(this).val() == "true") 
       { 
        $(this).attr ("checked" , true); 
       } 
      }); 
     }); 
16

可以使用:checked選擇與此有很大幫助。

var $field = $(this); 
return $field.is(':checked'); 

這將返回一個正確的布爾值。如果返回attr('checked')val(),則最終會出現一個字符串,這可能不是您想要的。

http://docs.jquery.com/Selectors/checked

1
.attr('checked') 

將返回true用於檢查和undefined爲未選中

1

更正:

.attr("checked") 

會返回 「選中」 如果選中的話(不是真的), 「不確定」如果沒有檢查。

如果你想有一個真/假,那麼你必須做這樣的事情:

$("#checker").attr("checked")=="checked"