0

jQueryでフォームを送信するのに少し問題があります..

私はこれを得た:

            <div class='widget-body'> 


            <div class='center' id='formHolder' style='display:none'>

                <div id='amountDiv'>$<span id='amountSpan'></span></div> 
                <div class='pagination pagination-centered margin-none' style='font-size:15px;'>
                    <ul>
                        <li><a href='javascript:void(0)' id='dec'>-</a></li>
                        <li class='active'><a href='javascript:void(0)' class='addfunds'>Add Funds</a></li> 
                        <li><a href='javascript:void(0)' id='inc'>+</a></li>

                    </ul>
                </div><!--//Pagination-->";


    $contents .= " 
    <form action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\" id=\"ppform\">
        <input type=\"hidden\" name=\"cmd\" value=\"_xclick\" />
        <input type=\"hidden\" name=\"business\" value=\"{$set['pp_paymentemail']}\" />
        <input type=\"hidden\" name=\"quantity\" value=\"1\" />
        <input type=\"hidden\" name=\"item_name\" value=\"{$set['rbalanceadd_paymenttext']}\" />
        <input type=\"hidden\" name=\"amount\" class='a' value=\"\" />
        <input type=\"hidden\" name=\"item_number\" value=\"{$ir['username']}\" />
        <input type=\"hidden\" name=\"no_shipping\" value=\"1\" />
        <input type=\"hidden\" name=\"return\" value=\"$return\" />
        <input type=\"hidden\" name=\"currency_code\" value=\"{$set['currency_type']}\" /></form>

        <form method=\"post\" action=\"https://secure.payza.com/checkout\" id='pzform' />                
            <input type=\"hidden\" name=\"ap_purchasetype\" value=\"service\" />
            <input type=\"hidden\" name=\"ap_merchant\" value=\"{$set['ap_paymentemail']}\" />
            <input type=\"hidden\" name=\"ap_itemname\" value=\"{$set['rbalanceadd_paymenttext']}\" />
            <input type=\"hidden\" name=\"ap_currency\" value=\"{$set['currency_type']}\" />
            <input type=\"hidden\" name=\"ap_returnurl\" value=\"{$myi}\" />
            <input type=\"hidden\" name=\"ap_quantity\" value=\"1\" />
            <input type=\"hidden\" name=\"ap_amount\" class='a' value=\"\" />
            <input type=\"hidden\" name=\"ap_description\" value=\"{$ir['username']}\" />
            </form>        
        ";
        $contents.="
        </div><!--//formHolder-->

            <div id='btHolder'>
            <div class='center'>
                <img src='themes/steel/theme/images/icons/paypal.png' style='margin-left:10px;margin-right:10px;' id='paypalBt'>
                <img src='themes/steel/theme/images/icons/payza.png' id='payzaBt'>
            </div><!--//Center-->
            <br />

             </div><!--//btHolder-->   


            </div><!--//Widget Body-->

したがって、最初にユーザーは支払い方法を選択します。これは、#payzaBtまたは#paypalBtを選択することによって行われます

その後、ユーザーは追加したい金額を指定する必要があります。

これは#incまたは#decで行われます(これにより、PayPal と Payza フォームの両方の金額入力フィールドに金額が追加されます。

私のjQueryは次のようになります。

    $(document).ready(function() {

        $('#paypalBt').click(function() {
          $('.addfunds').attr('id','addfundspp');  
          $('#btHolder').hide();  
          $('#formHolder').show();
        });                
        $('#payzaBt').click(function() {
          $('.addfunds').attr('id','addfundspz');  
          $('#btHolder').hide();  
          $('#formHolder').show();
        }); 

        $('#addfundspz').click(function() {
            $('#pzform').submit();
        });                 
        $('#addfundspp').click(function() {
            $('#ppform').submit();
        });                 
    $('#amountSpan').text('5');        
    $('.a').val('5');
    $('#inc').click(function(){
      $('#amountSpan').text( Math.min(100, Number($('#amountSpan').text()) + 5) ) 
      $('.a').val( Math.min(100, Number($('.a').val()) + 5) ) 
    });

    $('#dec').click(function(){
      $('#amountSpan').text( Math.max(5, Number($('#amountSpan').text()) - 5) ) 
      $('.a').val( Math.max(5, Number($('.a').val()) - 5) )   
    });
    }); 

これですべて正常に動作します。問題は、ユーザーが PayPal または Payza フォームを送信しなければならない場合です。上記の jQuery コードでわかるように、まず [資金を追加] ボタンに ID 属性を追加しています。そのボタンをクリックすると、jQuery フォーム送信機能が使用されます。しかし、これはうまくいきません。フォームは送信されません。

なにが問題ですか?

前もって感謝します。

4

1 に答える 1

4

これは、ドキュメントの準備ができているときに#addfundspz( and#addfundspp ) が存在しないためです。

イベント委任を使用できます

$(document).on('click','#addfundspz',function() {
      $('#pzform').submit();
});
于 2013-05-28T19:01:38.583 に答える