Обработка недопустимых полей в Firefox при отправке формы с помощью AJAX - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть форма с полем <input type=number>.Форма не отправляется через <button type=submit>, но значения поля ввода собираются с помощью функции Javascript и передаются в вызов AJAX.В классическом представлении Firefox запрещает мне отправлять форму, когда одно из полей ввода недопустимо.Но в этом случае этого не происходит.Вместо этого Firefox устанавливает недопустимое значение поля как пустое.Поскольку мой параметр не требуется, я не могу на стороне сервера определить, был ли он недействительным или просто намеренно пропущен.Небольшой рабочий набросок того, что делает моя программа:

<html><head><meta charset="utf-8">
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js"></script>
<script>
$(document).ready(function() {
  $("#button").click(
    function() {
      let data = {somefield: $("#field").val()};
      console.log("data to transfer:", data);
      $.ajax({
        type: "POST",
        dataType: "json",
        url: "http://httpbin.org/post",
        data: data,
        success: function(e) {
          console.log("server response:", e.form);
        }
      });
    }
  );
});
</script></head><body><form>
<input id="field" type="number" />
<button type="button" id="button">Submit</button>
</form></body></html>

Chrome лучше справляется с этой ситуацией - он не позволяет мне набирать нечисловые символы в числовых полях.Попытка эмулировать это поведение с помощью jQuery сопряжена с другими проблемами, которые, вероятно, стоили бы другого вопроса.

Как лучше всего справиться с этим в Firefox?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...