1

1つの選択ボックスで2つのペイパルボタンを選択したい。

最小限のフォームコードがあります:

//フォーム

<form id="form1" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">


<select name="select1" id="select1">
    <option id="option1" value="1">Button1</option>
    <option id="option2" value="2">Button2</option>
</select>

<input type="image" src="images/purchase_button.png" border="0" name="submit" alt="PayPal — The safer, easier way to pay online." />
<img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1" />
</form>

その後、実行時にjqueryが残りを実行します。

$('#select1').change(function () {

if ($('option:selected', this).val() == 1) {

    $('#button1').remove(); //clean up
    $('#button2').remove(); //clean up

    $('#form1').append('<input type="hidden" name="hosted_button_id" value="button1-code-here" id="button1" />');


} else {

    $('#button1').remove(); //clean up
    $('#button2').remove(); //clean up

    $('#form1').append('<input type="hidden" name="hosted_button_id" value="button2-code-here" id="button2" />');

}



});

私の問題は、オプション1ボタンを選択すると、送信ボタン2になることがあるということです。

あなたがペイパル支払いページに行くとき、ペイパルはクッキーを保存しますか?

これが毎回スムーズに機能しないのはいつですか?

4

2 に答える 2

2

コードを最適化する必要があります。それらを作成すると、期待どおりに機能します。

最初に1つのボタンを使用します。必要なのは値を変更することだけなので、余分なボタンは必要ありません。1つのボタンを使用するだけで、コード全体をこれらの単純な行に書き込むことができます。

$('#select1').change(function () {

    if ($('option:selected', this).val() == 1) {
        $("#button1").val("button-1-code");
    } else {
       $("#button1").val("button-2-code");
    }

});

そして、あなたの分離された質問に答えるために:

私の問題は、オプション1ボタンを選択すると、送信ボタン2になることがあるということです。

上記はこの問題を解決します

あなたがペイパル支払いページに行くとき、ペイパルはクッキーを保存しますか?

時々、しかしあなたはあなたのコードを開発するためにこれに頼ることができません

これが毎回スムーズに機能しないのはいつですか?

上記の解決策は再びそれを成し遂げます

于 2013-02-26T09:51:20.597 に答える
1

以下のように使用することもできます、

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

    $(function()
    {
        $('#select1').on('change',(function ()
        {
            var id    = $(this).text();
            var value = $(this).val();
            $('#button1').remove();
            $('#button2').remove();

            $('#form1').append('<input type="hidden" name="hosted_button_id" value="'+id+'-code-here" id="'+id+'" />');
        });
    });

</script>
于 2013-02-26T09:52:15.837 に答える