0

フォームが送信されたときに隠しフィールドを更新し、新しい値でフォームを処理することになっているjqueryに次のコードがあります。

$("#" + id).ajaxForm({
    beforeSubmit: function() {
        $("#" + id + " input[type=submit]").attr('disabled', true);
        $("#" + id + " img.loader").show();

        $.get('/getProd.php?refNumber='+$("#" + id + " input[name='refNumber']").val(), function (data) {
            $("#" + id + " input[name='productID']").val(data);
        });
        alert("done pre");
    },  
    success: function(resp) {
        $("#" + id + " input[type=submit]").attr('disabled', false);
        $("#" + id + " img.loader").hide();
        resp = eval('(' + resp + ')');
        ccm_parseJSON(resp, function() {
            alert('done');
        });
    }
});

私の問題は、使用されている送信された値が古いものであることです。行で挿入した新しい値を使用して成功させるにはどうすればよいですか

$("#" + id + " input[name='productID']").val(data);

?

ありがとう。

4

2 に答える 2

0

問題は ajax が async を使用していたことにあることがわかりました (そうあるべきです)。

基本的には、関数が終了した後にサーバーへのクエリを終了していました。

だから、私はajax呼び出しの前に設定しました

$.ajaxSetup({
        async: false
    });

そして私のajax呼び出しの後

$.ajaxSetup({
        async: true
    });

そしてそれはうまくいきました。

于 2013-02-22T13:09:24.127 に答える
0

(以下のコメント)

それが私が言いたいことです:

  1. 正しいrefNumber,を使用して、フォームのコンテンツをサーバーに送信します
  2. サーバー側で、呼び出しgetProd.php(またはその内部でコード化されている関数) を呼び出して、正しい を取得しますproductID
  3. 正しいproductID

クライアントとのやり取りを 1 つ余分に節約できます。

于 2013-02-22T13:09:49.743 に答える