【发布时间】:2018-04-02 08:01:29
【问题描述】:
我有一个如下所示的表单:
<form id="myForm" action="/searchuser" method="POST" @submit.prevent="onSubmit(inputValue)">
<div class="field">
<label class="label">Name</label>
<div class="control">
<input class="input" type="text" placeholder="Text input" v-model="inputValue" @keyup="onKeyUp" @blur="inputFocused = false">
<ul v-if="inputFocused">
<li v-for="value in values"><a class="panel-block is-primary" :href="value.link">@{{value.title}}</a></li>
</ul>
</div>
</div>
</form>
在我的 JavaScript 中,我有两个方法 onSubmit 和 onKeyPress:
<script>
export default {
data() {
return {
inputValue: "",
inputFocused: false,
values: [
{ title: "facebook", link: "http://facebook.com" },
{ title: "twitter", link: "http://twitter.com" },
{ title: "gplus", link: "http://plus.google.com" },
{ title: "youtube", link: "http://youtube.com" }
]
};
},
methods: {
onKeyUp: function() {
document.forms["myForm"].submit();
this.inputFocused = true;
},
onSubmit: function(inputval) {
console.log(inputval);
}
}
};
</script>
我想要实现的是当用户按下一个键时,我希望提交表单,但我不希望页面被重定向到/searchuser 路由。但是,只要我按下一个键,即使我使用 prevent 修饰符来阻止提交,页面也会被重定向。如何防止它被重定向并仅在 keyup/keydown 上提交?我的目标是通过将inputval 发送到服务器来通过onSubmit 执行ajax 调用。
【问题讨论】:
标签: javascript ajax forms vue.js