Препятствуйте тому, чтобы Пользователи утверждали, что форма ударом вводит № 2 [дубликат]

Я встречал такие странности с элементами директивы и таблицы. См. Этот выпуск , например. Попробуйте обернуть ваш шаблон тегом div или используйте replace:false.

5
задан DForck42 29 May 2009 в 13:38
поделиться

6 ответов

Я установил для формы значение onsubmit = "return false" и сделал это

<input type="button" value="Submit" onClick="document.Survey.submit()" style="font-size: 1.25em;">
5
ответ дан 13 December 2019 в 05:41
поделиться

Я рекомендую использовать обработчик onsubmit, который предотвращает отправку формы (возвращает false), а затем использовать javascript для отправки формы при нажатии кнопки.

<form action="accion.htm" onsubmit="return false;">
    <input type="text" name="pepe" />
    <a onclick="this.parentNode.submit();" href="javascript:;">submit</a>
</form>

Обратите внимание, что это просто Например, обработчики событий не следует добавлять в строку, а this.parentNode.Submit () работает только в том случае, если является прямым дочерним элементом формы.

1
ответ дан 13 December 2019 в 05:41
поделиться

если в форме есть один ввод типа текста, и пользователь нажимает "Enter" на этом вводе, форма будет отправлена ​​в соответствии со спецификацией HTML 4. Самый простой способ предотвратить это - добавить еще один скрытый текстовый ввод

0
ответ дан 13 December 2019 в 05:41
поделиться

Зачем это нужно?

Отправка формы нажатием ввод - стандартное ожидаемое поведение веб-формы.

Если вы пытаетесь убедиться, что они не случайно отправят форму до того, как они заполнили или выбрали все параметры, используйте проверку Функция javascript, которая проверяет наличие записей во всех полях формы. (добавьте параметр onsubmit = 'myValidateForm ();' в тег формы)

Если все необходимые данные заполнены, не должно быть проблем с разрешением отправки формы с помощью введите как также нажав кнопку.

0
ответ дан 13 December 2019 в 05:41
поделиться
$('input').keydown(function(e){
    return e.keyCode !== 13;
});

... I don't recommend doing this, by the way.

6
ответ дан 13 December 2019 в 05:41
поделиться

Я философски согласен с плакатами, которые говорят: «Почему вы хотите это сделать?» Но у меня также есть кто-то, кто спрашивает меня об этом поведении, так что я в той же лодке, что и вы.

Я использовал решение Thirster42 раньше, но оно работает для меня только когда это GET, а не POST. Это также, похоже, зависит от браузера - Firefox не отправляет форму, когда пользователь нажимает ввод в текстовое поле, но Safari отправит. (Firefox 3.5.3, Safari 4.0.3, MacOSX)

Большая часть того, что я видел в Интернете, выглядит так это : «В: Как мне это сделать? A: В основном, вы не надо ". Я считаю, что это связано с тем, что поведение несовместимо между платформами и веб-браузерами, а то, что работает для Firefox, может не работать для IE или Opera. Кроме того, вы не можете полагаться на javascript, если пользователь отключил его в браузере.

Все, что было сказано, вот то, что я сделал, кажется, работает, заимствовано из здесь и других различных мест. Проверено в Firefox, Safari и IE 8. JavaScript для заголовка:

function disableEnterKey(e)
{
   var key;
   if(window.event)
      key = window.event.keyCode;     // IE 
   else
      key = e.which;     // Firefox
   if(key == 13)
      return false;
   else
      return true;
 }

И затем в каждом поле ввода:

:onKeyDown "return disableEnterKey(event);"

Мне это не очень нравится, но если это делает людей счастливыми ...

0
ответ дан 13 December 2019 в 05:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: