diff --git a/dev/multipleforms/app.vue b/dev/multipleforms/app.vue
new file mode 100644
index 00000000..62443ca8
--- /dev/null
+++ b/dev/multipleforms/app.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
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..fbe425f1 100644
--- a/src/formGenerator.vue
+++ b/src/formGenerator.vue
@@ -1,7 +1,7 @@
-div
- fieldset.vue-form-generator(v-if='schema != null', :is='tag')
- template(v-for='field in fields')
+div.vue-form-generator(v-if='schema != null')
+ template(v-for='field in fields')
+ fieldset(v-if='schema != null', :is='tag')
.form-group(v-if='fieldVisible(field)', :class='getFieldRowClasses(field)')
label(v-if="fieldTypeHasLabel(field)", :for="getFieldID(field)")
| {{ field.label }}
@@ -15,6 +15,23 @@ div
.hint(v-if='field.hint') {{ field.hint }}
.errors.help-block(v-if='fieldErrors(field).length > 0')
span(v-for='(error, index) in fieldErrors(field)', track-by='index') {{ error }}
+ template(v-for='group in groups')
+ fieldset(v-if='schema != null', :is='tag')
+ legend(v-if='group.legend') {{ group.legend }}
+ template(v-for='field in group.fields')
+ .form-group(v-if='fieldVisible(field)', :class='getFieldRowClasses(field)')
+ label(v-if="fieldTypeHasLabel(field)", :for="getFieldID(field)")
+ | {{ field.label }}
+ span.help(v-if='field.help')
+ i.icon
+ .helpText(v-html='field.help')
+ .field-wrap
+ component(:is='getFieldType(field)', :disabled='fieldDisabled(field)', :model='model', :schema.sync='field', @model-updated='modelUpdated', @validated="onFieldValidated")
+ .buttons(v-if='buttonVisibility(field)')
+ button(v-for='btn in field.buttons', @click='buttonClickHandler(btn, field)', :class='btn.classes') {{ btn.label }}
+ .hint(v-if='field.hint') {{ field.hint }}
+ .errors.help-block(v-if='fieldErrors(field).length > 0')
+ span(v-for='(error, index) in fieldErrors(field)', track-by='index') {{ error }}