форма без каких-либо действий, а где ввести не перезагрузить страницу
Я ищу самый аккуратный способ создать HTML-форму, которая не имеет кнопки отправки. Это само по себе достаточно легко, но мне также нужно остановить перезагрузку формы, когда выполняются подобные представления (например, нажатие введите в текстовое поле).
7 ответов:
добавьте обработчик onsubmit в форму (либо через обычный js, либо через jquery $().submit (fn)) и возвращает false, если не выполнены ваши конкретные условия.
Если вы не хотите, чтобы форма отправлялась, когда - либо-в этом случае, почему бы просто не оставить атрибут "действие" на элементе формы?
вы хотите включить
action="javascript:void(0);"
для вашей формы, чтобы предотвратить перезагрузку страницы и поддерживать стандарт HTML.
просто добавьте это событие в текстовое поле. Это предотвратит отправку при нажатии Enter, и вы можете добавить кнопку отправки или форму вызова.отправить () по мере необходимости:
onKeyPress="if (event.which == 13) return false;"
например:
<input id="txt" type="text" onKeyPress="if (event.which == 13) return false;"></input>
когда вы нажимаете enter в форме, естественное поведение формы должно быть отправлено, чтобы остановить это поведение, которое не является естественным, вы должны предотвратить его отправку (поведение по умолчанию), с помощью jquery:
$("#yourFormId").on("submit",function(event){event.preventDefault()})
идея:
<form method="POST" action="javascript:void(0);" onSubmit="CheckPassword()"> <input id="pwset" type="text" size="20" name='pwuser'><br><br> <button type="button" onclick="CheckPassword()">Next</button> </form>
и
<script type="text/javascript"> $("#pwset").focus(); function CheckPassword() { inputtxt = $("#pwset").val(); //and now your code $("#div1").load("next.php #div2"); return false; } </script>
два пути решения :
- значение действия формы - " javascript: void (0);".
- добавить прослушиватель событий нажатия клавиш для формы, чтобы предотвратить отправку.
первый ответ является лучшим решением:
добавить обработчик onsubmit в форму (либо через обычный js или jquery $().submit(fn)) и возвращает false, если ваши конкретные условия не являются встретились.
более конкретно с jquery:
$('#your-form-id').submit(function(){return false;});
Если вы не хотите, чтобы форма отправлялась, когда-либо - в этом случае, почему не просто оставить атрибут "действие" на элементе формы?
Написание Chrome расширения-это пример того, где у вас может быть форма для ввода пользователем, но вы не хотите ее отправлять. Если вы используете action= " javascript:void (0);", код, вероятно, будет работать, но вы получите проблема где вы получаете сообщение об ошибке о запуске встроенного Javascript.
Если вы полностью опустите действие, форма перезагрузится, что также нежелательно в некоторых случаях при написании расширения Chrome. Или если у вас была веб-страница с каким-то встроенным калькулятор, где пользователь будет предоставлять некоторые входные данные и нажмите кнопку "Рассчитать" или что-то в этом роде.