【发布时间】:2018-11-07 11:57:59
【问题描述】:
我在一个页面上有两个相同的表单,我希望将其抽象为自己的组件。但是我需要为每个表单/组件设置不同的 id,因为有 jquery 可以获取 textarea 的值并且内容不同。这样做的正确方法是什么?我可以在创建组件的新实例时附加 id 吗?
Form.vue:
<form
@submit.stop.prevent="onFeedbackFormSubmit(activity)"
id="new_feedback_form">
<div>
<div class="textarea-container">
<textarea
placeholder="Leave some feedback"
@keyup="onFeedbackFormSubmit(activity)"
v-model="feedback"
name="entry[feedback]">
</textarea>
</div>
</div>
</form>
form.js:
submitForm(activity) {
let $form = $("#new_feedback_form");
let data = $form.serialize();
let path = `/portfolio/${activity.record.id}`;
// api patch request
this.apiPatch({ data: data, path: path })
.then(({ data }, status, xhr) => {
this.$store.commit("current/OVERWRITE_RECORD", {
type: "activity",
childAttr: "feedback",
data: data.feedback
});
})
.catch(e => {
this.generateError(e);
});
},
Main.vue:
<Form id="form1"></Form>
<Form id="form2"></Form>
这可能(或正确)吗?
【问题讨论】:
-
让我看看你使用这个id的jquery代码,也许你不需要id,你只需要一个dom元素
-
@jacky 我已经添加了上面的 jquery 代码。我想要做的是获取表单中的值以发出补丁请求。如果我在同一页面上有 2 个 Form 组件实例,它们会“冲突”吗?现在,如果我在 Main.vue 的组件上添加 id,我无法获取 textarea 中的值
标签: jquery vue.js vuejs2 vue-component