From ab1daeb89d85eab040c09508053848211e202d55 Mon Sep 17 00:00:00 2001 From: David Higgins Date: Mon, 10 Dec 2018 16:43:07 -0500 Subject: [PATCH] added an optional "unique" flag to "getFieldID" that appends lodash "uniqueId" to the ID when true. Fixes #468 --- src/fields/abstractField.js | 6 +++--- src/fields/core/fieldChecklist.vue | 4 ++-- src/fields/core/fieldRadios.vue | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/fields/abstractField.js b/src/fields/abstractField.js index b6019ad3..31988ed3 100644 --- a/src/fields/abstractField.js +++ b/src/fields/abstractField.js @@ -1,4 +1,4 @@ -import { get as objGet, forEach, isFunction, isString, isArray, debounce } from "lodash"; +import { get as objGet, forEach, isFunction, isString, isArray, debounce, uniqueId } from "lodash"; import validators from "../utils/validators"; import { slugifyFormID } from "../utils/schema"; @@ -208,9 +208,9 @@ export default { } }, - getFieldID(schema) { + getFieldID(schema, unique = false) { const idPrefix = objGet(this.formOptions, "fieldIdPrefix", ""); - return slugifyFormID(schema, idPrefix); + return slugifyFormID(schema, idPrefix) + (unique ? "-" + uniqueId() : ""); }, getFieldClasses() { diff --git a/src/fields/core/fieldChecklist.vue b/src/fields/core/fieldChecklist.vue index c46bd9f5..66a12785 100644 --- a/src/fields/core/fieldChecklist.vue +++ b/src/fields/core/fieldChecklist.vue @@ -3,7 +3,7 @@ .listbox.form-control(v-if="schema.listBox", :disabled="disabled") .list-row(v-for="item in items", :class="{'is-checked': isItemChecked(item)}") label - input(:id="getFieldID(schema)", type="checkbox", :checked="isItemChecked(item)", :disabled="disabled", @change="onChanged($event, item)", :name="getInputName(item)", v-attributes="'input'") + input(:id="getFieldID(schema, true)", type="checkbox", :checked="isItemChecked(item)", :disabled="disabled", @change="onChanged($event, item)", :name="getInputName(item)", v-attributes="'input'") | {{ getItemName(item) }} .combobox.form-control(v-if="!schema.listBox", :disabled="disabled") @@ -14,7 +14,7 @@ .dropList .list-row(v-if="comboExpanded", v-for="item in items", :class="{'is-checked': isItemChecked(item)}") label - input(:id="getFieldID(schema)", type="checkbox", :checked="isItemChecked(item)", :disabled="disabled", @change="onChanged($event, item)", :name="getInputName(item)", v-attributes="'input'") + input(:id="getFieldID(schema, true)", type="checkbox", :checked="isItemChecked(item)", :disabled="disabled", @change="onChanged($event, item)", :name="getInputName(item)", v-attributes="'input'") | {{ getItemName(item) }} diff --git a/src/fields/core/fieldRadios.vue b/src/fields/core/fieldRadios.vue index 304a5bf9..a323f75b 100644 --- a/src/fields/core/fieldRadios.vue +++ b/src/fields/core/fieldRadios.vue @@ -1,7 +1,7 @@