Open IntuzJatanTrivedi opened 4 months ago
Dynamic fields are essentially pre-configured versions of their base type, once they are on the stage they are identical to their base type. They are internally keyed as
If you are using custom controls which have a fixed name, then these can be sorted.
As this is a fairly unique configuration, your best option would be to hook into the resolved formBuilder promise and sort the control li's in the way you want them to be sorted.
@lucasnetau I request you to please share an example or a demonstration which shows how can I access the promise of the formBuilder if possible.
I understood the direction of your thought but I cannot find a way to access the promise you suggested.
https://formbuilder.online/docs/formBuilder/promise/
$('#selector).formBuilder(config).promise.then(formBuilder => {
//Controls are rendered and you can now sort them
});
Thanks for the update! I will get back to you as soon as I implement this.
Hey @lucasnetau I tried implementing your suggested solution but I am afraid I could not achieve the goal. I also tried the exact implementation as in the promise's documentation in your site but still that does not work.
const formBuilder = $(fb.current).formBuilder({ fields, ...options() });
try {
console.log('formBuilder.formData: 101', formBuilder.formData);
} catch (err) {
console.warn('formData not available yet.101');
console.error('Error: 101', err);
}
formBuilder.promise.then(function (fb) {
console.log('fb.formData: 101', fb);
});
Now here is the implementation and the logs I kept for debugging. I could not find any method by which I could sort the fields. Also I tried putting fields and options differently using different promises but it did not work as expected.
When I put the formData in the promise all the fields renders in the drop-area and I think it's completely normal behaviour and so I understand that formData is not something I need to touch. So I pass the fields as fields parameter only.
I think you misunderstood me. You cannot control the order of the fields through the fields config option.
In the formBuilder promise then() call you need to do custom sorting List Items of the ul.frmb-control element
https://stackoverflow.com/questions/304396/what-is-the-easiest-way-to-order-a-ul-ol-in-jquery
Description:
I want to render the fields in an alphabetical order. Is there any way I can achieve that?
Environment Details:
Expected Behavior
Actual Behavior
Steps to Reproduce