嗨大家我需要在发出ajax请求后检查某些复选框。
ajax请求会从另一个页面中拉出复选框,并且所使用的jquery位于原始页面上。我不知道如何解决这个问题我想:
<input type="checkbox" class="case" name="case" value="1"/>
<input type="checkbox" class="case" name="case" value="2"/>
<input type="checkbox" class="case" name="case" value="3"/>
<input type="checkbox" class="case" name="case" value="4"/>
$(document).ready(function()
{
$(function()
{
$("#selectall").on('click', function(){
$('.case').attr('checked',this.checked);
});
$(".case").on('click', function(){
if($(".case").length==$(".case:checked").length)
{
$("#selectall").attr("checked","checked");
}
else
{
$("#selectall").removeAttr("checked");
}
});
});});
当没有涉及ajax请求时,哪个工作正常。如果有人能帮我找到一种方法来允许在使用ajax请求时检查复选框,我想知道吗?
由于
答案 0 :(得分:0)
我想最好选中提取这些复选框的页面中的复选框。 所以用ajax加载html,而不是加载完成后选中复选框
答案 1 :(得分:0)
你需要在http://api.jquery.com/on/上使用jquery才能在ajax加载后绑定click事件......
<input type="checkbox" class="case" name="case" value="1"/>
<input type="checkbox" class="case" name="case" value="2"/>
<input type="checkbox" class="case" name="case" value="3"/>
<input type="checkbox" class="case" name="case" value="4"/>
<SCRIPT>
$(function(){
$("#selectall").on('click', function(){
$('.case').attr('checked',this.checked);
});
$(".case").on('click', function(){
if($(".case").length==$(".case:checked").length)
{
$("#selectall").attr("checked","checked");
}
else
{
$("#selectall").removeAttr("checked");
}
});
});
</SCRIPT>
答案 2 :(得分:0)
您需要委派活动..
由于绑定事件时页面上尚未提供复选框。因此,将它们委托给静态父容器应该可以解决问题。
$(staticContainer).on.('click', "#selectall", function ({
$('.case').prop('checked', this.checked);
});
$(staticContainer).on.('click', 'case', function () {
if ($(".case").length == $(".case:checked").length {
$("#selectall").prop("checked", true);
} else {
$("#selectall").prop("checked", false);
}
});
取消选中复选框而不是删除它的属性总是一个好主意。