1

奇妙な問題が発生しました。フォームの送信後にフォームのURLを変更しています。フォームフィールドを変更しましたが、完全に変更されていますが、アクションURLは変更されていません...これがHTMLコードです。

<form action="" method="post" id="payment-form">
    <input type="hidden" id="email" name="email" value="">
    ....
</form>

JQueryコード

$.ajax({
    url: form_url,
    type: 'post',
    context:this,
    data: $("#payment-form").serialize(),
    dataType: 'json',
    success: function(data) {
        if(data.success) {
            $('#payment_form').attr("action", data.url);
            $('#email').val(data.email);
            alert($("#payment-form").attr('action'));
            //$("#payment-form").submit();

        }
        else {
            $('#error').html(data.errors).addClass('error').fadeIn("slow").fadeOut(9000);
        }
    }
});

アラートにURLが表示されないのはなぜですか?

アップデート

設定$('#payment_form').attr("action", data.url);しましたが、URLは表示されませんが、URLは表示されalert(data.url)ます。

4

4 に答える 4

1

更新:これの原因は、マークアップの空のアクションパラメーターです。data.urlこれをマークアップから完全に除外すると、ajax呼び出しから戻ったときにjQueryによって属性を設定できます。

于 2013-01-12T02:25:34.770 に答える
1

変化する

$(this).attr("action", data.url);

$('#payment-form').attr("action", data.url);
于 2013-01-12T02:18:52.490 に答える
0

IDの要素が表示されませんpayment_form

$('#payment_form').attr("action", data.url);

代わりにこれを試してください:

$('#payment-form').attr("action", data.url); // <--- notice the 'dash' instead of the underscore
于 2013-01-12T02:25:00.430 に答える
0

this成功のコールバック内はフォームではありません

于 2013-01-12T02:19:40.477 に答える