PlainPerks
Back to lessons

Validate and trace the enquiry

Lesson 13 of 24

Prove required-field and email validation, inspect keyboard flow, submit one synthetic valid enquiry, find its stored Forminator submission, confirm the course mail catcher receives the local test message, and measure duplicate-click behaviour instead of assuming it.

Before you start

Before you begin The producer must route WordPress mail to an approved local mail catcher for this chapter. A mail catcher accepts local test messages and displays them in a browser; it does not send them to a real inbox. No real email address or customer data belongs in this exercise. Screenshot brief — IMG-WP14-00 - Place: after the paragraph above. - Capture: safe local-course evidence that the mail catcher is running, with an empty inbox and no external account. - Do not show: host credentials or unrelated messages. - Caption: “The course mail catcher keeps this delivery test local.”

1. Submit the form empty

Open Contact signed out and choose Submit without completing the required fields. The form should show clear field-level or summary errors and must not show the success message. Read the actual error wording on the pinned Forminator version rather than replacing it with tutorial text.

Submitting an empty form shows required-field errors beside all four fields.
Submitting an empty form shows required-field errors beside all four fields.

2. Test an invalid email

Fill the other required fields with synthetic content, but enter not-an-email in Email. Submit again. The form should reject the invalid address and remain on the form. No valid submission should be stored for this test. If an invalid value is accepted, stop and return to the Email field in Forminator. Under Settings choose Validate → Validate Field, Apply, and Publish Changes. Repeat the invalid test and verify that no new entry has its marker. Required and format validation are separate controls.

With Validate Field enabled, an invalid email is rejected and the entered values remain.
With Validate Field enabled, an invalid email is rejected and the entered values remain.

3. Check the keyboard path

Reload a clean Contact form and use Tab from the first field through Email, Type of service, Message and Submit. Confirm the focus indicator is visible and the order follows the form’s visual/logical sequence. Use the keyboard to open/select the service field and reach Submit. Do not remove the focus style in a later design lesson.

Keyboard focus reaches Email after Name; continue through service choice, Message and Submit.
Keyboard focus reaches Email after Name; continue through service choice, Message and Submit.

4. Submit one valid synthetic enquiry

Use these exact test values: - Name: Taylor Example - Email: taylor@example.test - Type of service: Seasonal tidy-ups - Message: Please tidy leaves and check access through the side gate. Submit once and wait for the result. The page should display: Thanks — your test enquiry was recorded on this practice site.

The actual success response says the practice enquiry was recorded.
The actual success response says the practice enquiry was recorded.

5. Find the stored Forminator submission

Return to Dashboard and open the pinned Forminator Submissions area. Filter/select Garden enquiry and find the Taylor Example record. Open it and compare all four values with the form entry. There should be one stored record for this valid test.

Locate the stored synthetic entries in Forminator Submissions.
Locate the stored synthetic entries in Forminator Submissions.

6. Check the local mail-catcher receipt

Open the local mail-catcher UI. Locate the message generated from the valid submission and inspect the recipient, subject/body and timestamp according to the pinned notification configuration. This proves that WordPress/Forminator handed a message to our local test SMTP path. It does not prove a real provider accepted or delivered an email to a real inbox.

The local catcher contains the actual generated practice notification; this does not prove external delivery.
The local catcher contains the actual generated practice notification; this does not prove external delivery.

7. Measure duplicate-click behaviour

Use a new synthetic message containing a unique marker, for example: Duplicate-click test 14 In the disposable fixture, activate Submit twice as quickly as the browser permits. Then inspect Forminator submissions and count how many records use that marker. We are testing observed behaviour, not forcing the chapter to say Forminator prevents duplicates. If two records appear, record that fact and design the later operational handling around it. In the recorded rehearsal one rapid double-click created one stored WP14-DOUBLE-01 entry. Measure your own result; this does not guarantee duplicate prevention under every retry or network condition.

8. State what has and has not been proven

At this point we know the form rejects the tested invalid inputs, stores a valid synthetic submission, and can generate a notification captured locally. We still do not know whether an approved real mail provider accepts and delivers the message, who monitors the destination, how long submissions should remain stored, or what happens during delivery failure. Those need a separate real-delivery lesson in an approved environment; they are not proved by this local exercise.

The course record separates observed local checks from unproven public-service claims.
The course record separates observed local checks from unproven public-service claims.

Practise

Run empty, invalid-email and valid synthetic submissions. Find the stored valid record and the corresponding local mail-catcher message. Success check: no invalid test is mistaken for success; the valid test can be traced from visitor form → stored submission → local captured mail.

Check your result

no invalid test is mistaken for success; the valid test can be traced from visitor form → stored submission → local captured mail.

If something goes wrong

- The success message appears for an invalid form: stop; record the exact fields/browser/plugin version and treat it as a defect rather than continuing. - The submission is stored but no local mail appears: inspect the local mail transport and Forminator notification configuration separately; storage success does not prove notification success. - A real address appears in the test: stop and replace the fixture/test data before continuing; do not copy it into evidence.

Choose another lesson