1

現在、ユーザーのアクションに応じて、2 つの送信ボタンのうちの 1 つをクリックできるフォームがあります。1 つのボタンはフォームを別の php ページに送信するだけで、もう 1 つのボタンは Stripes チェックアウト オーバーレイを表示し、入力が完了すると別の php ページに送信します。フォームが有効でない場合、html5/jquery 検証でオーバーレイが入らないようにしたいと思います。

現在、フォームが有効ではなく、ユーザーが通常の送信ボタンをクリックすると、何もせず、修正が必要なフィールドが表示されます(私が望むもの)。フォームが有効でないときにユーザーが Stripe オーバーレイ ボタンをクリックすると、オーバーレイが表示されますが、ユーザーがフィールドに入力して [送信] をクリックすると、オーバーレイは消え、フォームが有効でないため何も起こりません (ユーザーに何を表示するかを示します)。フィールドを修正する必要があります)。これは理想的ではありません。ユーザーは無効なフィールドを修正してから、オーバーレイ フォームに再度入力してから送信する必要があるからです。繰り返しますが、フォームが完全に有効になるまで、どちらのボタンも何もしません。

<button type='submit' name='saveSubmit' id='saveSubmit'>Save Order</button>

<button type='submit' name="customButton" id="customButton">Save Order and Pay</button>

および jQuery 関数:

 <script>
$(document).ready(function () {
$('form.h5-defaults').h5Validate();
});
$('form.h5-defaults').submit(function () { return $('form.h5-defaults').h5Validate('allValid'); });


$('#customButton').click(function(){
  var token = function(res){
    var $input = $('<input type=hidden name=stripeToken />').val(res.id);
    $('form').append($input).submit();
  };

    var pennNewExtra = Math.abs(newExtra) * 100;

  StripeCheckout.open({
    key:         'xxxxxx',
    amount:      pennNewExtra,
    currency:    'usd',
    name:        'xxxxxx',
    description: 'Add-Ons - $' + Math.abs(newExtra) + '.00',
    panelLabel:  'Checkout',
    token:       token
  });

  return false;
});
</script>
4

1 に答える 1