Safari: отключить форму-submit на Enter?

Следующая проблема:

На моем сайте у меня две формы. Один для входа и один для основных данных. У меня есть только одна кнопка отправки в основной форме. Форма входа представляется через js на mainform submit.

Это прекрасно работает. Но в Safari я могу нажать Enter, пока мой фокус находится в форме входа. Это приведет к отправке формы входа без основной формы, поэтому я получаю сообщение об ошибке (он перенаправляет меня на простой вид json, который я запрашиваю при отправке).

Можно ли отключить действие "on enter press"?

Ответ 1

Если вы говорите, что в любом случае вы используете JS для отправки данных в форме, почему бы не отменить поведение браузера по умолчанию с помощью <form onsubmit="return false;">. Таким образом, независимо от того, нажмете кнопку отправки или нажмите ввод на входе, он не будет отправлен. Onsubmit = "return false" не должен мешать вызову метода submit() в форме из JS.

Ответ 2

Вы можете добавить обработчик onsubmit для своей формы входа. Этот обработчик может помочь вам предотвратить отправку формы (и, например, переместить курсор в следующее пустое поле в формах);

<form onsubmit="do_some_function(); return false;" ></form>

Чтобы предотвратить отправку формы из формы, верните false в обработчик onsubmit;