форма без каких-либо действий, а где ввести не перезагрузить страницу


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

7 74

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>

два пути решения :

  1. значение действия формы - " javascript: void (0);".
  2. добавить прослушиватель событий нажатия клавиш для формы, чтобы предотвратить отправку.

первый ответ является лучшим решением:

добавить обработчик onsubmit в форму (либо через обычный js или jquery $().submit(fn)) и возвращает false, если ваши конкретные условия не являются встретились.

более конкретно с jquery:

$('#your-form-id').submit(function(){return false;});

Если вы не хотите, чтобы форма отправлялась, когда-либо - в этом случае, почему не просто оставить атрибут "действие" на элементе формы?

Написание Chrome расширения-это пример того, где у вас может быть форма для ввода пользователем, но вы не хотите ее отправлять. Если вы используете action= " javascript:void (0);", код, вероятно, будет работать, но вы получите проблема где вы получаете сообщение об ошибке о запуске встроенного Javascript.

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