Как препятствовать тому, чтобы форма была отправлена?

Я бы использовал поле шаблона, а не ограниченное поле.

И не забывайте, что когда вы устанавливаете видимость в false на веб-элементах управления, они не отображаются в ответе

<asp:templatefield>
   <itemtemplate>
      <span class='myhide'><%# eval("columnname") %></span>
   </itemtemplate>
</asp:templatefield>

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

214
задан marco-fiset 13 August 2013 в 07:53
поделиться

4 ответа

В отличие от других ответов, return false - это только часть ответа. Рассмотрим сценарий, в котором ошибка JS возникает до оператора return ...

html

<form onsubmit="return mySubmitFunction(event)">
  ...
</form>

скрипт

function mySubmitFunction()
{
  someBug()
  return false;
}

, возвращающий false здесь, не будет выполнен, и форма будет отправлена ​​в любом случае . Вы также должны вызвать preventDefault , чтобы предотвратить действие формы по умолчанию для отправки форм Ajax.

function mySubmitFunction(e) {
  e.preventDefault();
  someBug();
  return false;
}

В этом случае даже с ошибкой форма не будет отправлена!

В качестве альтернативы можно использовать блок try ... catch .

function mySubmit(e) { 
  e.preventDefault(); 
  try {
   someBug();
  } catch (e) {
   throw new Error(e.message);
  }
  return false;
}
228
ответ дан 23 November 2019 в 04:23
поделиться

Вот мой ответ:

<form onsubmit="event.preventDefault();searchOrder(event);">
...
</form>
<script>
const searchOrder = e => {
    e.preventDefault();
    const name = e.target.name.value;
    renderSearching();

    return false;
}
</script>

Я добавляю event.preventDefault(); в onsubmit, и это работает.

0
ответ дан 23 November 2019 в 04:23
поделиться

Вы можете использовать встроенное событие onsubmit , как это

<form onsubmit="alert('stop submit'); return false;" >

Или

<script>
   function toSubmit(){
      alert('I will not submit');
      return false;
   }
</script>

<form onsubmit="return toSubmit();" >

Demo

Теперь это может быть не очень хорошей идеей при создании больших проектов. Возможно, вам понадобится использовать прослушиватели событий.

Пожалуйста, подробнее о встроенных событиях и прослушивателях событий (addEventListener и attachEvent IE) здесь . Потому что я не могу объяснить это больше, чем Крис Бейкер .

Оба верны, но ни один из них не является «лучшим» сам по себе, и, возможно, причина, по которой разработчик решил использовать оба подхода.

138
ответ дан 23 November 2019 в 04:23
поделиться
var form = document.getElementById("idOfForm");
form.onsubmit = function() {
  return false;
}
8
ответ дан 23 November 2019 в 04:23
поделиться
Другие вопросы по тегам:

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