【发布时间】:2017-05-10 03:48:15
【问题描述】:
我有以下提交表单的功能:
methods: {
submit_form: function () {
this.drawing = dat.toImage();
this.$refs.my_form.submit()
}
}
drawing 变量分配给my_form 内的输入,例如:
<input type="text" name="doodle" :value="drawing">
问题是表单在this.drawing 更新为dat.toImage() 之前发送。确实,如果我将前面的函数一分为二:
methods: {
submit_form: function () {
this.$refs.my_form.submit()
},
set_drawing: function () {
this.drawing = dat.toImage()
}
}
当我先运行set_drawing() 然后运行submit_form()(使用两个不同的按钮)时,表单会正确发送更新的绘图值。因此,由于某种原因,当两行都在同一个函数中时,表单会在前一行的执行结束之前发送。
知道为什么会发生这种情况以及如何解决吗?
更新:
这也不行,空值随表单一起发送。
data: {
drawing: null
}
methods: {
submit_form: function () {
this.drawing = dat.toImage();
while (this.drawing == null) {
false
}
this.$refs.my_form.submit()
}
}
看来我初始化drawing 的任何值都是随表单发送的值。事实上,我还在网站上显示了drawing 的值,当我点击提交时,我看到它发生了变化,但上面的循环永远不会结束。
.toImage 方法属于 atrament.js 库。
另外,为了捕捉我所做的提交事件:
<form method="POST" class="model-form" v-on:submit.prevent="submit_form()" ref="my_form">
【问题讨论】:
标签: javascript vue-component vue.js vuejs2