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.click() 関数の代わりに jQuery.on('click', function(){} を使用する

3- jQuery promise 関数を使用します。

$.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 に答える