2010-01-14 117 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