I would like to track the form submission using DTM. If we use event based tracking how can I check if all the form fields are validated before tracking submission button? How these types of logic are added in DTM?
Related
Sorry for the basic question... I'm relatively new to Orbeon Forms..
Is it possible to inhibit the change of a form (to most users) once the has been submitted and the status has reached the "Completed" ?
Specific business key users must be able to change these forms if required (like Admin rights).
At present anyone with the right permissions can re-open a form and change the data..
Many thanks
PeteA
The basic idea is the following:
In the process that runs when users submit the form, use the set-workflow-stage(name = "…") action to change the workflow stage to something like submitted.
In Form Builder, set the entire form to be readonly if the workflow stage is submitted using a formula like fr:workflow-stage-value() = 'submitted'.
You can find more about it in this blog post.
From the Orbeon documentation:
Application Name. Each form definition has an application name which identifies a group of forms that belong together. In practice, an application name might correspond to a project, or a department, or a company. For example, all forms built by Orbeon have the "orbeon" application name.
NOTE: Depending on your permissions, the application name might have been picked for you already, or you might have the choice of a restricted set of application names.
Form Name. Each form definition also has a form name, which identifies a unique form name within a particular application.
As orbeon's persistence API retrieves the form definitions by their application and form name, I would like to put some validation to the form settings page that would prevent the user to save a second from definition with the same application and form name as an existing one.
(My first approach would be to put some custom response to the persistence layer, but orbeon is not able to make difference between a general persistence error and a validation errror there with other words the backpropagation of the errors of the persistence layer/api to the user is not that mature, so to say.)
So how should I do this?
If I understand correctly, you'd like Form Builder users to be prevented from creating a new form with an app/form name that is already used. The user could either be prevented from creating that form, or at least offered the option of opening the existing form instead of creating a new one with the same app/form name.
One question would be what, in that context, "already used" means: are we talking about forms editable by that user in Form Builder, or published forms? Maybe Form Builder should check both.
This check should happen in 3 places in Form Builder:
When the form is initially created (better warn users as soon as possible).
When users open the form settings dialogue to rename the form.
When saving (even if we're sure no form with the same app/name existed at the time the form was created, in the meantime another form with the same app/name might have been created).
In situation number one, if a form with the same app/name exists in Form Builder, Form Builder should provide the user the option to open that form instead of creating a new form.
So this is a feature that should be implemented at the level of Form Builder; it cannot be done solely by a custom implementation of the persistence API. This is covered by request for enhancement #818.
I want a form where the user can fill some values and then exit, and then come back in some time and complete the form and submit it. Is it possible with google forms? If so, will the data entered in the second session be saved along with the corresponding row in the spreadsheet or will a new row be entered?I hope my question is clear
Data from the Form only goes to the server when it is submitted, so you cannot store that form data before submission (disregarding any data that might have gotten stored in the browser session).
What you could do instead is select Settings and check the option Edit after submit. This way, a user can submit the Form and then come back later to edit the responses.
Reference:
Google Forms: Allow people to edit responses
I have an address search area on my form in my asp.net mvc3 application. the whole form is submitted using the main submit button and the address search is initiated using the search button.
When the user submits the form using the search button only the house number and postcode fields need to be validated. When the user submits the whole form the whole form needs to be validated.
How is this achieved using fluentvalidation?
This is not an ideal situation in MVC design but still you can achieve this buy submitting form on search button click by jQuery. Use separate identifier to specify whether it was submitted by search button or main button by passing additional parameter through jQuery either in model itself or querystring. Once you have that identifier on serverside, you can use custom fluentValidation to validate model with that if..else condition. You can use .ajax as well if that fits in your design.
Hope this helps.
How is it possible to prefill inputfields in a form with data from a database?
Example:
In my database I have name, age and gender
The form that is on a website have the same input fields and the names are name, age and gender.
A user click on link which goes to another website and the inputfields are automatic filled out.
How do I send the information in my database to prefill the input fields on the other website?
You can't make your application type things into a web form that you don't control. If you do control the web form, you could of course make it accept parameters for those values and fill them in when the form is constructed.
You can construct a POST to the other site that would be the equivalent of filling in AND SUBMITTING the form, but that won't show the fields to the user and allow them to edit; it would skip past that step. Also that might very well be prevented if the external site has security in place to prevent cross-site request forgery.