Хотите html-форму отправить, чтобы ничего не делать
Я хочу, чтобы html-форма ничего не делала после ее отправки.
action=""
не годится, потому что это приводит к перезагрузке страницы.
в основном я хочу, чтобы функция ajax вызывалась всякий раз, когда нажата кнопка или кто-то нажимает "enter" после ввода данных. Да, я мог бы удалить тег формы и добавить просто вызов функции из события onclick кнопки, но я также хочу, чтобы функциональность "hitting enter" не получала все hackish.
8 ответов
С помощью 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>
вы можете использовать следующий HTML
<form onSubmit="myFunction(); return false;">
<input type="submit" value="Submit">
</form>
как часть события onclick кнопки возвращает false, что остановит отправку формы.
ie:
function doFormStuff() {
// ajax function body here
return false;
}
и просто вызовите эту функцию при нажатии кнопки отправки. Есть много разных способов.
используйте jquery. Возможно, поместите div вокруг ваших элементов из формы. Затем используйте preventDefault (), а затем сделайте свои вызовы ajax
<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>