我正在使用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);
}
我做错了什么?任何帮助赞赏。感谢。
答案 0 :(得分:7)
由value
访问的复选框的val()
将始终与输入的value
属性相对应。无论复选框的检查状态如何,始终设置哪个。您要检查的是checked
属性:
{ allday: $('#allday').is(':checked') }
或者如果您确实想要传递该值,则在检查时:
{ allday: $('#allday').is(':checked') ? $('#allday').val() : '' }
答案 1 :(得分:2)
复选框是烦人的小虫子。您必须实际检查复选框上是否选中了“已选中”属性,如果是,则只需要应用该值。
所以如果你有一个复选框
<input type="checkbox" name="sports" value="soccer" />
你想检查是否已在其上设置了checked属性
<input type="checkbox" checked="yes" name="sports" value="soccer" />
值总是相同的,它是改变的状态