2011-12-01 124 views
0

我有一個複選框在一個頁面和頁面加載它沒有選中。當複選框被選中時,值TRUE被正確傳遞,儘管當頁面加載時複選框未被選中時,值FALSE沒有被傳遞。我正在使用下面的代碼來做到這一點。Jquery複選框問題

$(document).ready(function() { 
    $('#MemberCountryOptInchkbox').change(function(){ 
     if($(this).attr('checked')){ 
       $(this).val('TRUE'); 
     }else{ 
       $(this).val('FALSE'); 
     } 
    }); 
}); 
+2

這這將值「FALSE」提交到服務器是你想要的。 http://stackoverflow.com/questions/426258/how-do-i-check-a-checkbox-with-jquery-or-javascript – Anil

回答

0

請注意,JustAnil的評論指向IMO的完美答案。

如果未勾選複選框,則在發佈表單時,不會發布任何內容 - 只有在複選框被選中時纔會提交。因此,在服務器端,如果您的request.forms或類似的複選框沒有值,那麼您可以假定它沒有被檢查。

0

當一個複選框被取消選中時,它的值不會被表單傳遞。如果您不想檢查這種行爲,請使用隱藏字段。

0

嘗試使用的change

$('#MemberCountryOptInchkbox').click(function(){ 
0

click處理程序,而不是在加載頁面時,您的當前實現高度的變化處理程序到您的複選框。但是,這並不意味着代碼在頁面加載時執行。爲了實現這個目標,你應該沿着線的東西:

$(document).ready(function() { 

    $('#MemberCountryOptInchkbox').change(function(){ 
     if($(this).attr('checked')){ 
      $(this).val('TRUE'); 
     }else{ 
      $(this).val('FALSE'); 
     } 
    }); 

    if($(this).attr('checked')){ 
     $(this).val('TRUE'); 
    }else{ 
     $(this).val('FALSE'); 
    } 
}); 

這可以確保在頁面加載時也執行一次的代碼。

0

解決方法很簡單,您的問題,您可以使用下面的標記爲您的複選框

<input type="checkbox" value="FALSE">... 

如果該複選框未選中