@websiller

Отправка формы после изменения данных на Vue.js?

Есть форма:
<form ref="form" method="POST">
	<input type="text" :value="name">
</form>
<a href="#" @click.prevent="submit('Вася')">Инициирует отправку формы</a>


Компонент js:
{
	data{
		name: '',
	},
	methods:{
		submit(name){
			this.name = name;
			// форма отправляется до того, как изменится value инпута
			this.$refs.form.submit();
		}
	}
}


Проблема в том, что форма отправится до того, как изменится value поля этой формы, в итоге сервер не получает нужных данных. Работает, если в вместо this.$refs.form.submit() написать setTimeout(()=>this.$refs.form.submit(), 0) . Но как будет правильнее в этом случае. И почему вообще так происходит? Код с формой и компонентом просто для примера, в реальном приложении все сложнее, интересует именно этот момент с отправкой.
  • Вопрос задан
  • 326 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Работает, если в вместо this.$refs.form.submit() написать setTimeout(()=>this.$refs.form.submit(), 0) . Но как будет правильнее в этом случае.

nextTick

И почему вообще так происходит?

потому что
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы