Vue.js Vuejs从其他组件返回表单数据
我有一个App.vue,我在其中加载带有输入字段(组件)的表单。提交方法有效,但我没有从表单输入字段标题中获取任何数据 我怎样才能做到这一点 App.vue:Vue.js Vuejs从其他组件返回表单数据,vue.js,Vue.js,我有一个App.vue,我在其中加载带有输入字段(组件)的表单。提交方法有效,但我没有从表单输入字段标题中获取任何数据 我怎样才能做到这一点 App.vue: <form v-on:submit.prevent="getFormValues"> <page-header :title="'Banner toevoegen'"></page-header> <form-input :label="'title'" :labelvalue="
<form v-on:submit.prevent="getFormValues">
<page-header :title="'Banner toevoegen'"></page-header>
<form-input :label="'title'" :labelvalue="'Titel'" :type="'text'" :placeholder="''" :name="'title'" :value="''" :classname="'form-control'" :id="''"></form-input>
<form-input :label="''" :labelvalue="''" :type="'submit'" :placeholder="''" :name="'title'" :value="'banner toevoegen'" :classname="'form-control'" :id="''"></form-input>
</form>
Input.vue:
<template>
<div>
<div class="form-group">
<label v-if="label" :for="label" v-html="labelvalue"></label>
<input :type="type" :placeholder="placeholder" :name="name" :value="value" :class="classname" :id="id">
</div>
</div>
</template>
<script>
export default {
props: {
type: String,
placeholder: String,
name: String,
value: String,
classname: String,
id: String,
label: String,
labelvalue: String
}
}
</script>
导出默认值{
道具:{
类型:字符串,
占位符:字符串,
名称:String,
值:字符串,
类名:String,
id:String,
标签:字符串,
labelvalue:String
}
}
您可以使用$event变量执行此操作,该变量访问内联语句处理程序中的原始DOM事件
因此,在表单输入中应该有类似的内容:
<template>
<input
v-on:input="updateValue($event)"
type="text"
/>
</template>
<script>
export default {
methods: {
updateValue: function (evt) {
this.$emit('input', evt)
}
}
}
</script>
导出默认值{
方法:{
updateValue:函数(evt){
此.$emit('input',evt)
}
}
}
在app.vue(父组件)中,您可以访问该DOM元素:
<template>
<div id="app">
<form-input
v-on:input="evt => {value = evt.target.value}"
/>
</div>
</template>
请看一看这个简单的工作示例Vue有一个有趣的东西叫做,也许这比绑定值
更可取?还有一个叫做的东西可以帮助您检索值(而不是通过event.target
浏览DOM)。我不确定您想要实现什么,但我认为v-model
对您的问题很有用。类似问题的解决方案(我猜)似乎您希望将子组件中的更改同步到父组件,选中此项,您需要从Input.Vue向父组件发出一个事件,以通知父组件更新某些内容。
<template>
<div id="app">
<form-input
v-on:input="evt => {value = evt.target.value}"
/>
</div>
</template>