Skip to main content

Get Response

Use the ref prop to get form responses on demand via ref.current.getResponse().

React Usage

import React, { useRef } from 'react';
import { QuestionnaireRenderer } from '@mieweb/forms-renderer';

export function MyForm() {
const rendererRef = useRef();

const formData = {
schemaType: 'mieforms-v1.0',
fields: [
{ id: 'name', fieldType: 'text', question: 'Name' },
{ id: 'email', fieldType: 'text', question: 'Email', inputType: 'email' },
],
};

const handleSubmit = () => {
const response = rendererRef.current.getResponse();
console.log('Form response:', response);
// Send to server, etc.
};

return (
<div>
<QuestionnaireRenderer ref={rendererRef} formData={formData} />
<button onClick={handleSubmit}>Submit</button>
</div>
);
}

Response Format

getResponse() returns the current form state with answers:

{
"schemaType": "mieforms-v1.0",
"fields": [
{
"id": "name",
"fieldType": "text",
"question": "Name",
"answer": "John Doe"
},
{
"id": "email",
"fieldType": "text",
"question": "Email",
"inputType": "email",
"answer": "john@example.com"
}
]
}

Web Component Usage

<questionnaire-renderer id="myForm"></questionnaire-renderer>

<script type="module">
import '@mieweb/forms-renderer/standalone';

const el = document.getElementById('myForm');
el.formData = { schemaType: 'mieforms-v1.0', fields: [...] };

document.getElementById('submitBtn').addEventListener('click', () => {
const response = el.getResponse();
console.log(response);
});
</script>

See Standalone Web Component for the full API.

Meteor Blaze Usage

Template.myForm.onRendered(function() {
// The template instance exposes getResponse()
});

Template.myForm.events({
'click .submit-btn'(event, templateInstance) {
const response = templateInstance.getResponse();
console.log('Form response:', response);
}
});

See Meteor Blaze for the full API.