【发布时间】:2011-08-26 10:19:14
【问题描述】:
我目前正在创建一个必须可以选中/取消选中复选框的系统。每次更改状态时,我都需要 jQuery 对页面进行 AJAX 调用,从而更新数据库。
我该怎么做?
【问题讨论】:
标签: javascript jquery ajax checkbox
我目前正在创建一个必须可以选中/取消选中复选框的系统。每次更改状态时,我都需要 jQuery 对页面进行 AJAX 调用,从而更新数据库。
我该怎么做?
【问题讨论】:
标签: javascript jquery ajax checkbox
检测复选框是否被选中:
if ( $('#id').is(':checked') ) { }
这可以在由“onchange”事件触发的函数中执行。
function checkCheckboxState() {
if ( $('#id').is(':checked') ) {
// execute AJAX request here
}
}
【讨论】:
例如你可以这样做:
首先你必须查看复选框是否被选中:
$("#yourSelector").live("click", function(){
var id = parseInt($(this).val(), 10);
if($(this).is(":checked")) {
// checkbox is checked -> do something
} else {
// checkbox is not checked -> do something different
}
});
您可以通过 Ajax 加载特定内容:
$.ajax({
type: "POST",
dataType: "xml",
url: "path/to/file.php",
data: "function=loadContent&id=" + id,
success: function(xml) {
// success function is called when data came back
// for example: get your content and display it on your site
}
});
【讨论】:
id。而且,如果使用parseInt(),总是值得指定radix:parseInt($(this).val(), 10);
你坚持哪一点?你可能应该有这样的东西......
$('#myCheckbox').click(function() {
var checked = $(this).is(':checked');
$.ajax({
type: "POST",
url: myUrl,
data: { checked : checked },
success: function(data) {
alert('it worked');
},
error: function() {
alert('it broke');
},
complete: function() {
alert('it completed');
}
});
});
【讨论】:
大概是这样的吧?
$('.checkbox').click(function (){
var val = $(this).is(':checked');
$.load('url_here',{status:val});
});
【讨论】:
<input type="checkbox" name="foo" value="bar" class="checkIt"/>
<script type="text/javascript">
$('.checkIt').bind('click', function() {
if($(this).is(":checked")) {
// checkbox is checked
} else {
// checkbox is not checked
}
});
</script>
您现在可以拥有多个复选框。
【讨论】: