0

以下代码由 JQuery 1.3 组成。我怎样才能让它与最新版本一起工作:1.9.1 当单击删除链接时,我还需要它来删除选中的复选框。我想我应该为此使用 remove() 函数。

复选框是这样的:

<input type="checkbox" name="prog" value="C">
$(document).ready(function()
    {
        $("#submit_prog").click(
                function()
                {
                    var query_string = '';

                    $("input[@type='checkbox'][@name='prog']").each(
                        function()
                        {
                            if(this.checked)
                            {
                                query_string += "&prog[]=" + this.value;
                            }
                        });

                    $.ajax(
                        {
                            type: "POST",
                            url: "post_prog.php",
                            data: "id=1" + query_string,
                            success: 
                                function(t) 
                                {
                                    $("div#content").empty().append(t);
                                },
                            error:
                                function()
                                {
                                    $("div#content").append("An error occured during processing");
                                }
                         });    
                });
    });

编辑:我可以这样做以删除删除复选框:

function(event)
{
   if(this.checked)
    {
    query_string += "&prog[]=" + this.value;
    $(this).remove();
        }
}
4

3 回答 3

2

我认为这条线应该读

$("input[@type='checkbox'][@name='prog']")

作为

$("input[type='checkbox'][name='prog']")

更改事件处理程序的签名也是一个好主意

 $("#submit_prog").click(function () {

 $("#submit_prog").on('click', function () {
于 2013-04-24T17:29:00.457 回答
1

请注意,您只能选择:checked复选框以消除对if语句的需要。

$(document).ready(function() {
    $("#submit_prog").on("click", function () {
         var query_string = '';

         $("input[type='checkbox'][name='prog']:checked").each(function () {
             query_string += "&prog[]=" + this.value;
             $(this).remove();
         });

         $.ajax({
             type: "POST",
             url: "post_prog.php",
             data: "id=1" + query_string,
             success: function(t) {
                 $("div#content").empty().append(t);
             },
             error: function() {
                 $("div#content").append("An error occured during processing");
             }
         });    
    });
});
于 2013-04-24T18:34:48.630 回答
0

1-从选择器中删除“@”

2- 使用 jQuery.on('click', function(){} 而不是 jQuery.click() 函数

3- 使用 jQuery 承诺函数:

$.ajax({
    type: "POST",
    url: "post_prog.php",
    data: "id=1" + query_string
})
    .done(function (t) {
    $("div#content").empty().append(t);
})
    .error(function () {
    $("div#content").append("An error occured during processing");
});
于 2013-04-24T17:42:42.843 回答