#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
};