VueJS форма ввода мероприятия против
У меня есть форма, и я пытаюсь поймать событие submit, если пользователь нажимает клавишу enter внутри текстового ввода.
Это работает нормально, пока я также не попытаюсь поймать щелчок кнопки и предотвратить действие по умолчанию.
Я хочу иметь возможность обрабатывать кнопку click и enter ключ внутри ввода по-разному - но кнопка переопределяет метод формы submit.prevent.
Смотрите пример ниже, первое текстовое поле и кнопка запускают "одно событие" , но вторая форма имеет событие на кнопке, но это переопределяет форму отправить.
Я хочу, чтобы клавиша enter на входе установила заголовок "два события" но кнопка для установки заголовка на "double"
Это как-то связано с бурлящим событием?
var myApp = new Vue({
	'el' : '#myApp',
  'data': {
  	'title' : 'potato'
  }
})<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.js"></script>
<div id="myApp">
  
  <h1>
    {{title}}
  </h1>
  <form method="POST" @submit.prevent="title = 'one event'">
    <input type="text" />
    <button>One event</button>
  </form>
  
  <form method="POST" @submit.prevent="title = 'two events'">
    <input type="text" />
    <button @click.prevent="title = 'double'">Two events</button>
  </form>  
</div>1 ответ:
Поскольку вы все равно не даете формам отправляться, почему бы не изменить тип кнопки (по умолчанию-отправить).
<button type="button" @click="title = 'double'">Two events</button>
var myApp = new Vue({ 'el' : '#myApp', 'data': { 'title' : 'potato' } })<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.js"></script> <div id="myApp"> <h1> {{title}} </h1> <form method="POST" @submit.prevent="title = 'one event'"> <input type="text" /> <button>One event</button> </form> <form method="POST" @submit.prevent="title = 'two events'"> <input type="text" /> <button type="button" @click.prevent="title = 'double'">Two events</button> </form> </div>