2010-01-14 37 views
2

我正在使用JQuery的一些AJAX功能。但是當傳遞複選框的值時,無論複選框是否打勾,該值都會顯示。這是我的代碼:與JQuery使用複選框AJAX

$(document).ready(function(){ 
$('#submitform').click(function(){ 
$.ajax({ 
    type: "POST", 
    url: "abs_newabs_check.asp", 
    data: { allday: $("#allday").val() }, 
    success: callback 
    }); 

}); 
}); 

    function callback(data, status) 
    { 
    $("#ajaxdiv").html(data); 
} 

我在做什麼錯?任何幫助讚賞。謝謝。

回答

7

您的複選框的value,如訪問val()將始終對應於value屬性y的輸入。無論複選框的選中狀態如何,始終設置。要檢查什麼是checked屬性:

{ allday: $('#allday').is(':checked') } 

,或者如果你確實想傳遞的價值,當它的檢查:

{ allday: $('#allday').is(':checked') ? $('#allday').val() : '' } 
+1

後者是在使用jQuery時我傾向於處理複選框。 – ayaz 2010-01-14 10:05:24

+0

非常感謝。好的解決方案,很好的描述 – tonyyeb 2010-01-14 10:10:30

2

複選框是令人討厭的小雜事。您必須實際檢查複選框上是否選中了「checked」屬性,如果是,則只需要應用該值。

所以,如果你有一個複選框

<input type="checkbox" name="sports" value="soccer" /> 

要檢查檢查屬性已設置就可以了

<input type="checkbox" checked="yes" name="sports" value="soccer" /> 

值將始終是相同的,那就是改變狀態

+0

+1惱人的小傢伙:d – jrharshath 2010-01-14 10:04:59