我正在使用Google自动填充地址表格。我在Google官方网页上找到了example。一切都好。一切正常!但这是本机Javascript,
我有Vue应用程序,我不喜欢如何从JS脚本更改文本输入值。 这个想法是,当我在主输入中更改某些内容时,JS事件监听器应更改其他输入的值:
document.getElementById(addressType).value = val;
问题是我应该使用“文档” 来更改值:
document.getElementById('street_number').value
我想拥有像达人这样的东西:
<input type="text" v-model="input.address" ref="addressRef">
并读取值:
export default {
data() {
return {
input: {
address: "",
...
}
};
},
methods: {
test() {
console.log(this.input.address);
console.log(this.$refs.addressRef);
}
}
所以问题是:
答案 0 :(得分:1)
之后,您可以发出input
事件,v-model
依赖此事件来更新其value
:
let el = document.getElementById("id");
el.value = val;
el.dispatchEvent(new Event('input'));
实际中:
Vue.config.devtools = false
const app = new Vue({
el: '#app',
data: {
message: null
},
methods: {
updateBinding() {
let el = document.getElementById("input");
el.value = 'Hello!';
el.dispatchEvent(new Event('input'));
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<button @click="updateBinding">Click me </button><br>
<input id="input" v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>
</div>