启用按钮使用jquery.load检查复选框

时间:2012-12-21 19:34:03

标签: jquery

当复选框位于页面本身内时,以下代码可以正常工作。当有问题的内容从jquery .load加载时,它不会注册复选框。

以下html代码显示在<div id='output'></div>中。当我将它移到div之外时,它工作正常。

JS

$(document).ready(function() {
    $('#dropdown').change( function() {
        $('#output').load('/process.php',{dropdown: $(this).val()});
    });

    $(".checkbox").click(function(){
        $('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
    });
});

HTML for process.php

<input type="checkbox" class="checkbox">

3 个答案:

答案 0 :(得分:5)

您必须使用on()方法来考虑通过AJAX添加到DOM的元素。尝试更改此内容 -

$(".checkbox").click(function(){
    $('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
});

对此 -

 $('body').on('click', '.checkbox', function(){
     $('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
 });

http://api.jquery.com/on/

答案 1 :(得分:3)

尝试将checkbox处理程序更改为

$("body").on("click", ".checkbox", function(){
    $('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
});

答案 2 :(得分:3)

也许你应该通过实时绑定来试试

$(document).ready(function() {
    ...

    $(document).on( 'click', '.checkbox', function(){
        $('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
    });
});

这种方式允许您监听事件,也就是事件绑定完成后声明的对象。