Grz*_* G. 13 parameter-passing vue.js
我想从输入传递数据:
<input
id="txtName"
type="text"
v-on:keyup.enter="addMessage(/* THIS FIELD VALUE */)"
/>
Run Code Online (Sandbox Code Playgroud)
方法:
methods: {
addMessage(name) {
//stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用this或this.value作为参数,但它不起作用.
我该怎么解决这个问题?
tha*_*ksd 16
您可以使用v-model将数据属性绑定到输入,并在您的方法中引用它(请参阅此小提琴):
<input v-model="message" @keyup.enter="addMessage()"/>
Run Code Online (Sandbox Code Playgroud)
methods: {
addMessage() {
this.messages.push(this.message);
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用特殊的内联$event属性,该属性为您提供对目标元素值的引用(请参阅此小提琴):
<input @keyup.enter="addMessage($event)"/>
Run Code Online (Sandbox Code Playgroud)
methods: {
addMessage(e) {
this.messages.push(e.target.value);
}
}
Run Code Online (Sandbox Code Playgroud)
解决方案1:使用v-model(首选)
的HTML
<input id="txtName" @keyup.enter="addMessage" v-model="txtInput" type="text">
Run Code Online (Sandbox Code Playgroud)
VueJS
data: {
txtInput: ''
},
methods: {
addMessage(){
console.log(this.txtInput)
}
}
Run Code Online (Sandbox Code Playgroud)
解决方案2:使用jQuery
的HTML
<input id="txtName" @keyup.enter="addMessage('txtName')" type="text">
Run Code Online (Sandbox Code Playgroud)
使用import $ from jquery(webpack2示例)导入jQuery
VueJS
methods: {
addMessage(id){
console.log($('#txtName').val())
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22612 次 |
| 最近记录: |