Как добавить новый универсальный атрибут в jQuery FormBuilder

#javascript #jquery #formbuilder

Вопрос:

Я использую jQuery FormBuilder (https://formbuilder.online/) и мне нужен один пользовательский атрибут в качестве флажка для каждого типа. Поэтому независимо от того, является ли это текстовая область, ввод текста, флажок или аналогично — я всегда хочу добавить тот же флажок в качестве нового атрибута.

Мои варианты выглядят так:

 options = {
    scrollToFieldOnAdd: false,
    disableFields: ['button', 'file', 'hidden'],
    disabledAttrs: ['access'],
    // Add custom checkbox property to the form
    typeUserAttrs: {
        text: {
            showInGroupDesc: {
                type: 'checkbox',
                label: 'Show in Group Desc.?'
            }
        }
    }
}
 

Что позволяет использовать typeUserAttrs , к сожалению, мне нужно точно указать тип поля, в которое я хочу добавить новый атрибут showInGroupDesc .

Я не хочу копировать/вставлять этот элемент typeUserAttrs для каждого отдельного типа — есть ли параметр подстановочных знаков?

Ответ №1:

Я сам нашел решение, инициализировав объект userAttrs с помощью новых атрибутов newAttributes перед его передачей typeUserAttrs :

 // New attribute for specified fields 'fields' below
var newAttributes = {
            showInGroupDesc: {
                type: 'checkbox',
                label: 'Show in Group Desc.?'
            }
        };
var userAttrs = {};
const fields = ["autocomplete", "checkbox-group", "date", "number", "radio-group", "select", "text", "textarea"];
fields.forEach(function (item, index) {
    userAttrs[item] = newAttributes;
});

// Initialise the form builder
options = {
    // ... All your options here ...
    typeUserAttrs: userAttrs
  };