Отправка формы по ссылке против отправки формы с помощью кнопки (Chrome) - PullRequest
1 голос
/ 03 апреля 2019

У меня есть форма, которая содержит ссылку. Если пользователь нажимает на тег <a>, он должен отправить <form> с помощью jQuery. Тем не менее, в Chrome он не работает тихо. В Firefox работает нормально.

Я обнаружил, что если я изменю a на button элемент, он отлично работает, даже в Chrome. Кто-нибудь может объяснить это?

function javaScriptSubmit() {
  alert('Simulate submit!');
  $('#RetrieveQuote').submit();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<form id="RetrieveQuote" method="post" action="javascript:alert('action!')">
  <input id="myName" value="David"> <br/>
  <a href="javascript:void(0);" onclick="javaScriptSubmit()">Submit from link</a>
  <button onclick="javaScriptSubmit()">Submit from button</button>
</form>

Если вы находитесь в Chrome и нажимаете на ссылку, предупреждение о действии никогда не вызывается. Однако, если вы нажмете на кнопку, вы увидите оба предупреждающих сообщения. Нажатие на любой из них работает в FireFox.

1 Ответ

0 голосов
/ 04 апреля 2019

Попробуйте это:

 <html>
  <head>
    <title>test</title>
    <script
      src="https://code.jquery.com/jquery-3.3.1.js"
      integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
      crossorigin="anonymous"
    ></script>
  </head>
  <body>
    <form id="RetrieveQuote" method="post" action="javascript:alert('action!')">
      <input id="myName" value="David" /> <br />
      <a href="#" id="submit-link">Submit from link</a>
      <button>Submit from button</button>
    </form>
    <script>
      $("#submit-link").click(function() {
        $("#RetrieveQuote").submit();
      });
    </script>
  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...