0

I have a form that has a select option of 'Pay online' or 'Pay on delivery', i want if a user selects pay online it should redirect me to a pay online page '/pay_online', same with pay on delivery it should redirect me to a pay on delivery page '/pay_on_delivery'.

My code below keeps refreshing the page onsubmit of the form

  <form method="post" id="demoForm" onsubmit="return submitForm()">
              <div class="row">        
                  <div class="form-group">
                    <select class="form-control" name="paymode" id="paymode">
                       <option disabled selected>Payment Mode</option>
                      <option value="Pay Online">Pay Online</option>
                      <option value="Pay On Delivery">Pay On Delivery</option>
                    </select>
                  </div>
                </div>
                <input type="submit" value="Proceed">
            </form>

JS

<script type="text/javascript">
  
      function submitForm() {
       var selectedOption = $('#paymode').val();
        var url = "";
        if(selectedOption == 'Pay Online') {
            url = '{{ route('online-payment')}}';
        } else if (selectedOption == 'Pay On Delivery') {
            url = '{{ route('delivery-payment')}}';
        }
        .
        .
        .

        $('#demoForm').attr('action', url);
        $('form#demoForm').submit();
        return false;
      }
  </script>

Routes

Route::post('/online-payment',[App\Http\Controllers\MessengerController::class, 'online_payment'])->name('online-payment')->middleware('auth');

Route::post('/delivery-payment',[App\Http\Controllers\MyMessengerController::class, 'delivery_payment'])->name('delivery-payment')->middleware('auth');
Otis
  • 339
  • 2
  • 16

1 Answers1

0
  1. it's onsubmit="submitForm()" not onsubmit="return submitForm()"
  2. you should return true in submitForm() function, see this answer
Nidecker
  • 172
  • 8