我在应用程序中使用Vue.js,并且在表单中输入了文本
<div id="myVueForm">
<form>
<input type="text" v-on="keyup:addCategory | key 'enter'">
<!-- more form fields -->
<button type="submit">Submit Form</button>
</form>
</div>
在我的Vue实例中,我有以下内容
new Vue({
el: '#myVueForm',
methods: {
addCategory: function(e)
{
if(e) e.preventDefault();
console.log("Added a new category, thanks!");
}
}
});
尽管有preventDefault();
呼叫,但是当用户在文本输入时按下Enter键时,表单仍会提交(尽管该addCategory()
方法确实触发了)。这种行为可以在这个小提琴中得到证明。
我知道我可以使用jQuery捕获事件并阻止提交,但是我想看看在Vue中是否有可能这样做,因为这似乎很常见。
对于那些只是想阻止表单在Enter上提交但不想在输入上触发任何方法的用户,只需执行以下操作:
或在自定义组件上包括
native
修饰符:精美可读,简洁明了。