diff --git a/dev/multipleforms/app.vue b/dev/multipleforms/app.vue
new file mode 100644
index 00000000..2a1e7a77
--- /dev/null
+++ b/dev/multipleforms/app.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
diff --git a/dev/multipleforms/index.html b/dev/multipleforms/index.html
new file mode 100644
index 00000000..3e4ca015
--- /dev/null
+++ b/dev/multipleforms/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+ vue-form-generator multiple forms demo
+
+
+
+
+
+
+
diff --git a/dev/multipleforms/main.js b/dev/multipleforms/main.js
new file mode 100644
index 00000000..88e4ffc5
--- /dev/null
+++ b/dev/multipleforms/main.js
@@ -0,0 +1,9 @@
+import Vue from "vue";
+import VueFormGenerator from "../../src";
+Vue.use(VueFormGenerator);
+
+import App from './app.vue';
+
+new Vue({
+ ...App
+}).$mount('#app');
\ No newline at end of file
diff --git a/src/fields/abstractField.js b/src/fields/abstractField.js
index 0600cd92..e4c8080f 100644
--- a/src/fields/abstractField.js
+++ b/src/fields/abstractField.js
@@ -167,10 +167,10 @@ export default {
// then slugify it.
if (typeof schema.id !== "undefined") {
// If an ID's been explicitly set, use it unchanged
- return schema.id;
+ return schema.idPrefix + schema.id;
} else {
// Return the slugified version of either:
- return (schema.inputName || schema.label || schema.model)
+ return schema.idPrefix + (schema.inputName || schema.label || schema.model)
// NB: This is a very simple, conservative, slugify function,
// avoiding extra dependencies.
.toString()
diff --git a/src/formGenerator.vue b/src/formGenerator.vue
index cb111129..13039ade 100644
--- a/src/formGenerator.vue
+++ b/src/formGenerator.vue
@@ -1,6 +1,7 @@
div
fieldset.vue-form-generator(v-if='schema != null', :is='tag')
+ legend(v-if='schema.legend') {{ schema.legend }}
template(v-for='field in fields')
.form-group(v-if='fieldVisible(field)', :class='getFieldRowClasses(field)')
label(v-if="fieldTypeHasLabel(field)", :for="getFieldID(field)")
@@ -122,6 +123,13 @@ div
}
},
+ beforeMount() {
+ // Add idPrefix to fields if fieldIdPrefix is set
+ for (let field of this.schema.fields) {
+ field.idPrefix = this.options.fieldIdPrefix || "";
+ }
+ },
+
mounted() {
this.$nextTick(() => {
if (this.model) {
diff --git a/webpack.dev.config.js b/webpack.dev.config.js
index e126721b..d13cb98a 100644
--- a/webpack.dev.config.js
+++ b/webpack.dev.config.js
@@ -17,23 +17,24 @@ var loaders = [
test: /\.json$/,
loader: 'json'
},
- {
- test: /\.(woff2?|svg)$/,
- loader: "url"
- //loader: "url?limit=10000"
+ {
+ test: /\.(woff2?|svg)$/,
+ loader: "url"
+ //loader: "url?limit=10000"
},
- {
- test: /\.(ttf|eot)$/,
- loader: "url"
+ {
+ test: /\.(ttf|eot)$/,
+ loader: "url"
}
];
module.exports = {
devtool: "source-map",
-
+
entry: {
full: path.resolve("dev", "full", "main.js"),
mselect: path.resolve("dev", "multiselect", "main.js"),
+ mforms: path.resolve("dev", "multipleforms", "main.js"),
checklist: path.resolve("dev", "checklist", "main.js")
},