从 Vue js 中的模态提交表单

Submit a form from a Modal in Vue js

我需要从模式发送表单。没有使用完整的 Vue 应用程序,而是在我的 HTML 页面中插入 Vue.js。

https://jsfiddle.net/JIBRVI/03qnok9m/53/

Vue.component('modal', {
  template: '#modal-template'
})
// start app
// eslint-disable-next-line no-new
new Vue({
  el: '#app',
  data: {
    showModal: false,
    errors: [],
    name: ''
  },
  methods: {
    checkForm: function (e) {
      if (this.name) {
        return true
      }
      this.errors = []
      if (!this.name) {
        this.errors.push('Name required.')
      }
      e.preventDefault()
    }
  }

})

在基本模式示例中,我添加了带有字段、提交按钮和占位符以显示错误的表单。还有输入字段 «name» 和数组 «errors» 到应用程序中的数据部分。我还添加了 «checkForm» 方法。

主要错误说:

Property or method "checkForm" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property

可能是主页面可以和modal通信,所以主页面的数据和方法不能用

我也试过用form做一个组件,也没用。我无法与模态通信。

如有任何帮助,我们将不胜感激。

您需要将 namecheckform 方法移动到 modal 组件。您目前已经在 app 组件中定义了这两个,并试图从 modal 组件中的模态访问它。

Vue.component('modal', {
  template: '#modal-template',
  data(){
    return {
        name: '',
        errors: [],
    }
  
  },
  methods: {
    checkForm: function (e) {
      if (this.name) {
        return true
      }

      this.errors = []

      if (!this.name) {
        this.errors.push('Name required.')
      }

      e.preventDefault()
    }
  }
})