Vue: 表单值绑定更新不够快

创建于 2016-12-20  ·  3评论  ·  资料来源: vuejs/vue

假设我有一个简单的组件,只有一个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 ,因此它与页面加载或延迟无关。 :valuev-model

我不太了解 Vue 或 JS 的内部原理,但我认为这是因为它还无法分配值。 使用超时,提交发生在下一个滴答声。

最有用的评论

使用vm.$nextTick

this.myValue = 'a value'

this.$nextTick(function () {
  $(this.$el).parent('form').submit()
})

所有3条评论

我以为没有办法解决这个问题。

在这种情况下,我手动为 ajax 编写 param 的值。

在此之前发布过此问题吗? 找不到任何东西。

好吧,就我而言,我只想自动提交表单,包括页面刷新,不想(也不能)通过 Ajax 发送它。 如果没有解决方案,也许在文档中提及会很好?

使用vm.$nextTick

this.myValue = 'a value'

this.$nextTick(function () {
  $(this.$el).parent('form').submit()
})
此页面是否有帮助?
0 / 5 - 0 等级