Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Laravel无法从Vue multiselect获取值_Javascript_Laravel_Vue.js_Multi Select_Vue Multiselect - Fatal编程技术网

Javascript Laravel无法从Vue multiselect获取值

Javascript Laravel无法从Vue multiselect获取值,javascript,laravel,vue.js,multi-select,vue-multiselect,Javascript,Laravel,Vue.js,Multi Select,Vue Multiselect,我正在和拉威尔一起使用 我在表单中使用multiselect组件让用户选择多个国家。该组件工作正常,但当我提交表单并添加表单时,它会显示[object] 我无法获取multiselect组件的值。我发现了类似的问题,但没有一个对我有用 这是我的密码: ExampleComponent.vue文件: 从“vue Multiselect”导入Multiselect //全球注册 Vue.组件“multiselect”,multiselect 导出默认值{ 组成部分:{ 多选 }, 道具:['valu

我正在和拉威尔一起使用

我在表单中使用multiselect组件让用户选择多个国家。该组件工作正常,但当我提交表单并添加表单时,它会显示[object]

我无法获取multiselect组件的值。我发现了类似的问题,但没有一个对我有用

这是我的密码:

ExampleComponent.vue文件:

从“vue Multiselect”导入Multiselect //全球注册 Vue.组件“multiselect”,multiselect 导出默认值{ 组成部分:{ 多选 }, 道具:['value'], 资料{ 返回{ 内在价值:这个价值, 选项:[ {姓名:'匈牙利'}, {名称:'美国'}, {名称:'中国'} ] } }, 观察:{ 内在价值{ 这.$emit'input',v; } }, 方法:{ addTag新标签{ 常量标记={ 姓名:newTag,, 代码:newTag.substring0,2+Math.floorMath.random*10000000 } this.options.pushtag this.value.pushtag } }, } 这是我的登记表:


提交表单时,countriespost会向我显示以下内容:[object object],而不是实际值。

这是因为您提供了一个对象数组作为选项属性:

options: [
  { name: 'Hungary' },
  { name: 'USA' },
  { name: 'China' }
]
因此,输入时发出的值是一个对象。 尝试将选项更改为以下内容:

options: [ 'Hungary', 'USA', 'China' ]

如果将一个对象数组传递给multiselect组件的:options属性,则应使用javascript提交表单,以便在后端提取对象id或任何需要的内容,然后通过发送它们。 添加如下方法:

submit: function() {
  let data = {
    objectIds: _.map(this.selectedOptions, option => option.id), //lodash library used here
    // whatever other data you need
  }
  axios.post('/form-submit-url', data).then(r =>  {
    console.log(r);
  });
}

然后在您的提交按钮上触发@click.stop事件。

谢谢您的回答,现在对我来说很有意义。谢谢您,这样我就可以了。
options: [ 'Hungary', 'USA', 'China' ]
submit: function() {
  let data = {
    objectIds: _.map(this.selectedOptions, option => option.id), //lodash library used here
    // whatever other data you need
  }
  axios.post('/form-submit-url', data).then(r =>  {
    console.log(r);
  });
}