0

jQuery ajax フォームに問題があるようです。フォーム フィールドが空のように見えますが、同じ値を送信し続けます。したがって、jQueryは「キャッシュ」しているか、定義した変数を上書きしていないと思います。

function payment(projectID, billID)
{
    $.ajax
    ({
        url: 'modules/projects/projectFinancial.php?action=paymentDetails&projectID=' + projectID + '&billID=' + billID + '&rand=' + Math.random(),
        dataType: 'html',
        async: false,
        success: function(msg)
        {
            $("#paymentDetails").html(msg);
        }
    });

    $("#payment").dialog(
    {
        width: 500,
        height: 300,
        modal: true,
        buttons: 
        {
            Save: function()
            {
                var paymentAmount = $("#PaymentAmount").val();
                var paymentMethod = $("#PaymentMethod").val();
                var paymentRemarks = $("#PaymentRemarks").val();

                if ($('#PaymentDone').is(':checked'))
                {
                    var paymentDone = 1;
                }
                else
                {
                    var paymentDone = 0;
                }

                $.ajax
                ({
                    url: 'modules/projects/projectFinancial.php?action=payment&projectID=' + projectID + '&billID=' + billID + '&paymentAmount=' + paymentAmount + '&paymentMethod=' + paymentMethod + '&paymentRemarks=' + paymentRemarks + '&paymentDone=' + paymentDone + '&rand=' + Math.random(),
                    dataType: 'html',
                    async: false,
                    success: function(msg)
                    {
                        if (msg != "error")
                        {
                            showFinancial(msg, '{/literal}{$marginCalculated}{literal}');
                        }
                    }
                });

                $(this).dialog("close");
            }
        }
    });
}
4

1 に答える 1

0

以下のコードを使用して、キャッシュを完全にオフにしてみてください。また、サーバー上の何かを変更するアクションにはPOSTメソッドを使用する必要があります (支払いはそのようなアクションのようです)。

$(function() {
    $.ajaxSetup({ cache: false });
});

別の考え: 2 回目の [保存] をクリックしたときに、 2 番目のダイアログ ボックス#PaymentAmountの入力フィールドを参照していることを確認してください。動的に読み込まれるコンテンツで ID を使用するのは危険です。同じものを複数回読み込むと、簡単に ID が重複してしまう可能性があるからです。

$(this).dialog("close")DOM から古いダイアログを実際に削除するわけではありません。代わりに
使用してみてください。$(this).dialog("destroy")

于 2013-11-04T11:59:47.593 に答える