Хотите HTML-форму представить ничего не делать - PullRequest
54 голосов
/ 02 августа 2010

Я хочу, чтобы html-форма ничего не делала после отправки.

action="" 

не годится, потому что это приводит к перезагрузке страницы.

По сути, я хочу, чтобы функция ajax вызывалась всякий раз, когда нажимается кнопка или кто-то нажимает «ввод» после ввода данных.Да, я мог бы удалить тег формы и добавить просто вызов функции из события onclick кнопки, но я также хочу, чтобы функциональность «нажал ввод», не становясь хакерской.

Ответы [ 8 ]

75 голосов
/ 02 августа 2010

Используя return false; в JavaScript, который вы вызываете с помощью кнопки отправки, вы можете остановить отправку формы.

В основном вам нужен следующий HTML:

<form onsubmit="myFunction(); return false;">
<input type="submit" value="Submit">
</form>

Тогда поддерживающий javascript:

<script language="javascript"><!--
function myFunction() {
    //do stuff
}
//--></script>

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

<form onSubmit="return myFunction();">
<input type="submit" value="Submit">
</form>

В паре с:

<script language="JavaScript"><!--
function myFunction() {
    //do stuff
    if (condition)
        return true;

    return false;    
}
//--></script>
8 голосов
/ 16 мая 2011

Так же работает:

<form id='my_form' action="javascript:myFunction(); return false;">
3 голосов
/ 29 мая 2018
<form id="my_form" onsubmit="return false;">

достаточно ...

2 голосов
/ 07 августа 2010

Вы можете использовать следующий HTML

<form onSubmit="myFunction(); return false;">
  <input type="submit" value="Submit">
</form>
2 голосов
/ 02 августа 2010

Как насчет

<form id="my_form" onsubmit="the_ajax_call_function(); return false;">
 ......
</form>
0 голосов
/ 09 апреля 2017
<form action='javascript:functionWithAjax("search");'>
  <input class="keyword" id="keyword" name="keyword" placeholder="input your keywords" type="search">
  <i class="iconfont icon-icon" onclick="functionWithAjax("search");"></i>
</form>

<script type="text/javascript">
function functionWithAjax(type) {
  // ajax action

  return false;
}
</script>
0 голосов
/ 02 августа 2010

используйте jquery. Может быть, положить div вокруг ваших элементов из формы. Затем используйте protectDefault () и затем вызовите ajax

0 голосов
/ 02 августа 2010

Как часть события onclick кнопки, верните false, что остановит отправку формы.

е:

function doFormStuff() {
    // ajax function body here
    return false;
}

И просто вызовите эту функцию при нажатии кнопки подтверждения. Есть много разных способов.

...