Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Как я могу использовать форму не перезагружая страницу (https://javascript.ru/forum/css-html/82788-kak-ya-mogu-ispolzovat-formu-ne-perezagruzhaya-stranicu.html)

Миленький 05.07.2021 22:30

Как я могу использовать форму не перезагружая страницу
 
Здравствуйте, я хочу вызвать
alert("works")
без перезагрузки страницы когда пользователь нажимает кнопку отправить в случае если форма заполнена
Тоесть я пытаюсь использовать форму только для тега required - отправка данных будет на fetch.
Пример кода который я пытаюсь написать
<!DOCTYPE html>

<body>
	<input type="text" id="test">
	<form action="" onsubmit="return false">
		<input type="text" required>
		<input type="text" required>
		<button type="submit" onsubmit="alert('works')">send</button>
	</form>

</body>

<script>
	document.getElementById("test").value = Math.random().toString(36).substring(7);
</script>

</html>
- тоесть я хочу чтоб страница не перезагружалась (для этого
form onsubmit="return false"
) и хочу чтоб когда пользователь отправляет заполненною форму - сработал
button type="submit" onsubmit="alert('works')"

Но похоже return false полностью блокирует onsubmit на кнопочке, как я могу это исправить...?

рони 05.07.2021 22:40

Миленький,
<form action="" onsubmit="alert('works'); return false">

Миленький 06.07.2021 14:36

Спасибо, это работает, однако как я могу использовать чтото подобное используя vue, тоесть @submit="return false;" не работает во vue...

Vlasenko Fedor 06.07.2021 15:01

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<div id="vueRoot">
  <form ref="form">
    <input name="userName" v-model="userName">
    <a href="#" v-on:click="submit">SUBMIT</a>
  </form>
</div>
<script>
new Vue({
  el : "#vueRoot",
  data : {userName : 'Ivan'},
  methods : {
    submit : function(){
    alert (`I form: ${this.userName}`)
     // this.$refs.form.submit()
    }
  }
});
</script>

как вариант :) https://jsfiddle.net/vlasenkofedor/ard3yLu8/


Часовой пояс GMT +3, время: 21:46.