Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Введите форму отправки HTML без отправки

Автор вопроса: bgcodeОтветов: 3

Я заменил type="submit" в своей форме на type="button", чтобы предотвратить отправку формы, когда пользователь нажимает ввод. Будет ли это препятствовать отправке формы во всех браузерах?

  • зачем это делать? может быть очень раздражающим для пользователя... darma 14.08.2010
  • потому что: 1- они должны заполнить определенные поля, чтобы использовать отправку. 2- форма основана на токенах. Добавление ввода должно добавить токен, а не отправлять всю форму. так что это действительно полезно для пользователей bgcode 14.08.2010
  • Это не умаляет того факта, что это плохая практика использования. Что вы должны сделать в этом случае, так это использовать Javascript, чтобы сделать и то, и другое. Yi Jiang 14.08.2010

browserformshtmlcross-browser

Ответы

Ответ 1 · рейтинг 1 · The Mighty Rubber Duck

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

Затем вы можете принудительно отправить форму, фактически вызвав метод отправки из Javascript. Конечно, вам нужно будет установить определенный флаг, чтобы ваша отправка прошла через это время. Что-то вроде (с jQuery)

//flag definition
var form_is_ready = false;

//event handler for the form submission
$('#your-form-id').submit(function() {
  if (!form_is_ready) {
    return false;
  }
});

//function you have to call to actually submit the form
function do_submit() {
  form_is_ready = true;
  $('#your-form-id').submit();
}

Это просто кусок кода, написанный на лету. Вы должны адаптировать его в соответствии с вашими потребностями.

Ответ 2 · рейтинг 1 · Delan Azabani

Это плохое решение для удобства использования, и его следует избегать.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы