форма отправки не работает только в браузере firefox - PullRequest
0 голосов
/ 01 мая 2020

Я отправляю форму из Bootstrap модально, и у меня проблема только с Firefox, это действительно простой код,

$('#confirmBtn').click(function(e){
    e.preventDefault();
    $('#s-form').submit();
  });

, вызывающий его из модального

<div class="modal" tabindex="-1" role="dialog" id="sipChannel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title"><strong>Updating SIP Channel</strong></h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <p>Please confirm we are updating <%= @customer.company_name %> SIP channels from x to y,
           this will affect your billing and will take affect within the next few minutes.</p>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
        <button type="button" class="btn btn-primary" type="submit" id="confirmBtn">Confirm</button>
      </div>
    </div>
  </div>
</div>

форма

  <div style="" class="col-md-5 offset-md-2 custom-form">
    <%= form_for @changeset, Routes.customer_path(@conn, :update_info, @customer.id), [id: "s-form", as: :customer], fn f -> %>
      <h6>Channels:</h6>

      <div class="input-group input-group--t4-xl">
        <%=
          number_input(f, :channels,
            class: "custom-text-field form-control form-control-lg",
            style: "",
            disabled: true,
            max: (@customer.channels || 1) * 2,
            min: 1,
            id: "s-number"
          )
        %>

        <div class="input-group-append" id="cancel-sip">
          <button class="btn btn-outline-secondary" id="edit-sip">
            Edit 
          </button>
        </div>
      </div>
    <% end %>

Если я добавлю console.log("...") в свою функцию jquery, я вижу, что, нажимая на кнопку, я вызываю функцию, но Firefox игнорирует submit, поэтому как я могу это исправить?

1 Ответ

1 голос
/ 01 мая 2020

ПОЧЕМУ не просто поместить кнопку внутри формы и не использовать jQuery? ИЛИ добавить form="s-form" к нему?

Если нет, то это должна быть кнопка type =, чтобы вам не нужно было использовать protectDefault для события click.

В противном случае, если вам нужно подтверждение, используйте

$('#s-form').on("submit",function(e) {
  if (!confirm("Are you sure")) e.preventDefault();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...