假设我有一个简单的组件,只有一个mounted
方法,它执行以下操作:
this.myValue = 'a value'
$(this.$el).parent('form').submit()
我的组件 html 如下所示:
<form action="http://…">
<input type="text" :value="myValue">
</form>
如您所见,我使用 jQuery 提交表单,如果赋值和提交表单发生在同一个函数中,则提交 __empty 数据__。 我可以通过使用无延迟超时来解决此问题,但这当然并不理想。
setTimeout(() => {
$(this.$el).parent('form').submit()
})
当它不在挂载方法中时也会发生这种情况,但例如on blur out
,因此它与页面加载或延迟无关。 :value
与v-model
。
我不太了解 Vue 或 JS 的内部原理,但我认为这是因为它还无法分配值。 使用超时,提交发生在下一个滴答声。
我以为没有办法解决这个问题。
在这种情况下,我手动为 ajax 编写 param 的值。
在此之前发布过此问题吗? 找不到任何东西。
好吧,就我而言,我只想自动提交表单,包括页面刷新,不想(也不能)通过 Ajax 发送它。 如果没有解决方案,也许在文档中提及会很好?
this.myValue = 'a value'
this.$nextTick(function () {
$(this.$el).parent('form').submit()
})
最有用的评论
使用vm.$nextTick