A form can look complete yet send nothing because validation stopped the native submission. Another script can submit that same form without running its submit-event handler. Why do two methods with similar names produce such different journeys?
The short answer is that requestSubmit enters the normal validation-and-submit-event path, subject to the applicable no-validate state. The older submit method bypasses interactive constraint validation and the submit event. A chosen submitter can also affect the action, method and contributed button value. The method call, event, request and service outcome are separate stages.
This lesson develops original paper traces for a fictional observatory-visit form. No example sends a real booking or private information. The traces follow the current HTML processing model under stated conditions; they are not browser test results. Use them to locate the first missing or changed stage before modifying an actual website.
This specialist guide belongs to the Websites root. It also connects to The Gold Standard of Education | Learning That Transfers into Life and the How X Works hub. The worked cases are original teaching examples; their numbers are stipulated so that the reasoning can be checked.
eduKateSG · Websites
Find your next learning step
Identify the submission entry point and the first stopping boundary. Then follow validation, event cancellation, entry construction and the later service outcome separately.
ROUTE 1 · CHAPTERS 1–4
Locate the normal path
Define the form and trace invalid and valid requestSubmit calls.
ROUTE 2 · CHAPTERS 5–8
Compare cancellation and context
Follow event cancellation, direct submit, explicit submitters and omitted arguments.
ROUTE 3 · CHAPTERS 9–12
Discriminate the entry mechanisms
Check skipped validation, argument errors, clicks and manually dispatched events.
ROUTE 4 · CHAPTERS 13–16
Preserve the timing boundaries
Keep asynchronous policy, input mutation, method access and return values precise.
ROUTE 5 · CHAPTERS 17–19
Practise and review
Solve the Draft/Final transfer and inspect evidence at the stage that owns it.
Chapter contents
Locate the normal path · Chapters 1–4
1. Begin with the visitor’s intended completion
2. Define the fictional form and its baseline
Compare cancellation and context · Chapters 5–8
5. Cancel the submit event before native continuation
6. Compare the direct submit method
Discriminate the entry mechanisms · Chapters 9–12
9. Separate no-validate policy from valid data
10. Check the method’s submitter argument before the lifecycle
11. Distinguish requesting submission from dispatching a click
12. Distinguish a synthetic submit event from native submission
Preserve the timing boundaries · Chapters 13–16
13. Keep asynchronous decisions inside a deliberate policy
14. Locate input changes relative to validation and entry construction
15. Recognise method masking as an object-property problem
16. Read the return value without inventing an outcome promise
Practise and review · Chapters 17–19
17. Work a changed form sequence independently
18. Design a review that checks stages honestly
19. Continue through the stage that owns the remaining question
CHAPTER 1 OF 19 · Locate the normal path
1. Begin with the visitor’s intended completion
Imagine a visit form that lets a group prepare a preview and later send a request. The visitor expects clear feedback about missing information, a chance to correct it and an accurate statement of what happened. A script printing submitted is not enough to establish that the request reached the service.
The website task crosses several boundaries. A control action can request submission. The browser can validate fields, dispatch an event, construct entries and prepare a native submission. A script can cancel that path and start a custom operation instead. The service can then receive, check and decide what to do with the information.
Give each boundary its own label in a trace. Requested, valid, event fired, native continuation allowed, entries constructed, request observed and service accepted are different statements. The first successful stage does not certify the rest.
This distinction is useful when debugging an apparently unresponsive form. A missing request could result from a required field, a canceled submit event, an exception before the method call or another condition. Replacing the method without identifying the first stopped stage can remove useful behaviour while hiding the original problem.
The Websites root connects these details to a completable journey. The present specialist lesson concentrates on the native submission lifecycle. It leaves field contribution rules to the existing entry-list article except where the chosen submission path changes which stage is reached.
CHAPTER 2 OF 19 · Locate the normal path
2. Define the fictional form and its baseline
Our paper form contains an enabled required text input named group and an enabled text input named note. Initially group is empty and note contains the invented text evening visit. The controls belong to one form, which uses POST and a fictional default action at https://example.test/visit.
Two ordinary submit buttons belong to the form. Preview is named intent with value preview and has a fictional action override at https://example.test/preview. Send is named intent with value send and uses the default action. Neither initially skips validation.
Assume the form is in a normal active document, can navigate and is not blocked by a sandbox or another lifecycle condition. No handler modifies the controls unless a chapter explicitly says so. We exclude file uploads, image-button coordinates, dialog submissions and specialised controls to keep the baseline readable.
The example.test addresses are reserved teaching addresses, not sibling articles or working service endpoints. They identify which action the model selects. A calculation about that selection is not an instruction to submit a real visit request or proof that a service exists at those addresses.
These assumptions matter because the full HTML algorithm has additional branches. The lesson isolates method choice, validation, submitter context and cancellation. A real implementation must account for its actual document state, controls, scripts and receiving service rather than treat this small baseline as the complete browser specification.
CHAPTER 3 OF 19 · Locate the normal path
3. Follow requestSubmit with an invalid required field
Call requestSubmit with the Send button as the explicit submitter while group remains empty. Under the baseline, interactive constraint validation finds the missing required value. The normal path stops before the submit event and the later native entry-construction stage.
A submit-event listener therefore need not run in this invalid case. Its absence does not prove the listener was registered incorrectly. The process did not reach that event. Inspecting the earlier validation boundary is more useful than repeatedly adding another submit handler.
The controls can receive invalid events as part of validation. Feedback presentation depends on the relevant browser and implementation context. The educational conclusion is the sequence: the required-value failure stops this normal submission path. We do not claim a particular popup wording or focus behaviour on every device.
For the ledger, mark requested yes, validation failed, submit event no and native continuation no. Do not enter a fictional request with an empty group merely because that value was visible in the form at the time of the call. The baseline path stopped before sending it.
Now give group the supplied value Blue and repeat from a fresh declared state. The earlier missing-value barrier is gone. That does not guarantee completion: the next stage includes a cancelable submit event, and later scripts or service checks can introduce different outcomes.
CHAPTER 4 OF 19 · Locate the normal path
4. Continue through a valid request and its submit event
With group set to Blue and no other constraint problem in the baseline, requestSubmit(Send) proceeds to a submit event at the form. The event's submitter identifies the Send button. The event can bubble and can be canceled under the defined processing model.
If no listener cancels it and no other stated condition stops continuation, the native algorithm can proceed to construct the entry list and select the submission behaviour. Under our ordinary controls, group and note contribute their values, and the selected Send button can contribute intent=send.
This is a conditional trace, not an observed network outcome. The browser still has subsequent work, and the service has not yet accepted anything merely because the event was not canceled. Keep those later stages separate in the evidence record.
One useful diagnostic logs the method entry, validation outcome where appropriate, submit-event receipt and the submitter identity. An authorised browser test can then inspect the relevant native request or canceled path. A single console message inside the event handler cannot establish every field or the service decision.
For the learner, compare the invalid and valid traces side by side. The method and chosen button are unchanged; the required input state differs. The changed event outcome follows the earlier validation result. This locates a genuine sequence relationship rather than treating a submit handler as a universal notification for every attempted submission.
CHAPTER 5 OF 19 · Compare cancellation and context
5. Cancel the submit event before native continuation
Keep the valid Blue value and add a submit listener that calls preventDefault synchronously. The submit event is observed, but its cancellation stops the native continuation at that boundary. The baseline does not proceed into its native entry-construction-and-submission path through that attempt.
Preventing the default continuation does not itself send a custom request. A script might deliberately do so, but that would be another action with its own data construction and outcome. A canceled native submission and a successful custom operation should not be collapsed into one unlabelled submitted status.
Nor does event cancellation erase work the handler already performed. If it changed a local display or recorded a diagnostic before preventing default, those actions remain. The cancellation affects the event's specified default continuation rather than rolling back arbitrary JavaScript side effects.
Use four columns: submit event reached, canceled, native path continues, custom path explicitly started. In this baseline they read yes, yes, no and no. Adding a custom fetch would change the last column and introduce another contract to inspect.
This is why replacing requestSubmit with submit as a quick way to get past a canceled event can be misleading. It bypasses the very boundary where the application expressed its policy. First determine whether the cancellation was intentional and whether the intended custom or corrective path actually ran.
CHAPTER 6 OF 19 · Compare cancellation and context
6. Compare the direct submit method
Return to the initial empty group field and call the form's submit method, assuming the property resolves to that native method. This entry point sets the submitted-from-submit-method condition. The native processing bypasses interactive constraint validation and does not fire the submit event.
The empty required value therefore does not stop this path through the normal interactive-validation check. A submit listener that usually prevents native continuation is not called through this method entry. The baseline can proceed towards entry construction using the form itself rather than a selected button.
That difference does not mean submit bypasses server validation or authorisation. The receiving service still needs its own checks. It also does not guarantee that a native request was observed, because document conditions and later processing remain relevant.
For our ordinary button controls, there is no selected Send or Preview submitter contribution from this direct method. The intended action comes from the form rather than one of those button overrides. A handler that expected intent=send can therefore receive a different record from the one a click-based test produced.
The lesson is not to prescribe one method for every application. It is to choose the entry point that matches the required lifecycle and then verify it. The older method's shorter path is a specific behaviour, not a general repair for unexplained validation or event-handling failures.
| Stated case | Interactive validation | Submit event | Native continuation in the case |
|---|---|---|---|
| requestSubmit(Send), empty required group | Fails | Not reached | Stopped |
| requestSubmit(Send), valid, uncanceled | Passes | Reached with Send | Can proceed under baseline |
| requestSubmit(Send), valid, prevented | Passes | Reached and canceled | Stopped at event |
| submit(), empty required group | Bypassed | Not fired | Can proceed under baseline |
| requestSubmit(), valid | Passes | Reached with null submitter | Can proceed without a selected button |
CHAPTER 7 OF 19 · Compare cancellation and context
7. Use the submitter as context rather than decoration
Call requestSubmit(Preview) with valid input. The explicit button can supply its action override and its own intent value. Under our baseline the proposed native destination is the fictional preview action, and its button contribution is intent=preview.
Change only the argument to Send. The form's default action applies and the button contribution becomes intent=send. The visitor-facing button labels describe different actions, while the script passes actual element objects as submission context rather than copying their visible text.
Other submitter attributes can affect method, encoding, target and no-validate state under the relevant rules. Do not infer the entire submission configuration from the form element alone when an actual submitter was supplied. Inspect the specific control and its effective context.
The existing entry-list article develops selected-button contribution in depth. Here the broader point is that the submitter affects both earlier validation policy and later submission choices. Reducing it to one extra field misses those lifecycle roles.
A practical record identifies the button element, its form owner, type and applicable submission attributes. A screenshot saying Preview cannot establish those properties reliably. A faithful test should activate or request the actual intended action and trace its consequences rather than assume that any submit button verifies all the others.
CHAPTER 8 OF 19 · Compare cancellation and context
8. Omit the submitter without inventing a default button
Call requestSubmit() with no explicit button argument. The method uses the form itself as the submission source in the specified algorithm. This is not a request to discover whichever visible button the author considers the default and simulate clicking it.
In the resulting submit event, submitter is null for that form-self case. The ordinary submit buttons do not gain their selected contribution merely because one appears first in the layout. Their action overrides likewise should not be assumed to apply as though one had been explicitly supplied.
Validation still belongs to the normal requestSubmit path, subject to the effective no-validate state. Omitting a button does not turn requestSubmit into the older submit method. The two calls remain different even when neither produces a button contribution in our ordinary example.
For a changed-context check, put Preview first in the document, give it a different action and call requestSubmit() without arguments. Ask the learner which element was actually supplied to the method. The answer is not determined by the position of the word Preview on the screen.
Keep this distinct from implicit submission, such as certain Enter-key behaviours, which has its own default-button rules. The method call and implicit user interaction are different entry mechanisms. They can converge on form submission while supplying different context along the way.
CHAPTER 9 OF 19 · Discriminate the entry mechanisms
9. Separate no-validate policy from valid data
Change the baseline by giving Preview a formnovalidate attribute. Keep group empty. A request using that submitter can skip the normal interactive constraint-validation step and reach the submit event despite the missing required value.
The field has not become valid because the check was skipped. Validation state and the decision to perform a particular validation step are different. A preview action might intentionally accept incomplete draft information, while the final send action requires more complete data under its own rules.
Similarly, the form's novalidate setting affects the applicable native path. A review should inspect the effective no-validate state for the chosen submission rather than assume that a required attribute guarantees every entry point will stop an empty field.
The service still owns its validation and authorisation responsibilities. Browser feedback helps a person correct ordinary mistakes, but it is not a security boundary and does not establish that received data satisfies the service contract. A skipped client check does not instruct the server to accept anything.
For our ledger, mark validation skipped rather than passed. That single label prevents a later report from claiming that all submitted fields were validated when the processing deliberately bypassed the step. Honest stage labels make the preview and send journeys understandable without assigning a false quality guarantee to either.
CHAPTER 10 OF 19 · Discriminate the entry mechanisms
10. Check the method’s submitter argument before the lifecycle
An explicit requestSubmit argument must be a submit button under the method's rules. Passing an ordinary button with type=button does not turn it into a submitter simply because its caption says Send. The method throws a TypeError for that invalid submitter kind.
If the supplied element is a submit button but its form owner is not the form on which requestSubmit was called, the method throws a NotFoundError DOMException. These argument errors occur before the ordinary lifecycle trace described in the baseline.
The distinction matters when debugging a missing submit event. The process may never have entered submission at all. Inspect the actual argument and exception rather than concluding that validation must have failed or that a listener canceled the event.
Visual containment is not the complete ownership rule. An eligible control can be associated with a form through the form attribute even when it is elsewhere in the document. Conversely, proximity on the screen cannot prove that it belongs to the intended form.
For a paper exercise, supply three cards: an owned submit button, an owned non-submit button and a submit button owned by another form. Classify argument acceptance, TypeError and NotFoundError before considering field validity. That ordering tests which question the method answers first and prevents unrelated failure explanations from being mixed together.
CHAPTER 11 OF 19 · Discriminate the entry mechanisms
11. Distinguish requesting submission from dispatching a click
The requestSubmit method enters form submission with its stated submitter context. It does not begin by dispatching a click event at that button. A click listener attached to Send is therefore not automatically part of the requestSubmit(Send) trace.
This can expose application logic placed only in a click handler. A visitor's ordinary button activation may run that logic, while a separate script calling requestSubmit reaches the submission path without the same click-stage work. The method has not promised to replay every route through the control's activation.
Do not fix this by assuming every event or method called submit is interchangeable. Identify where the application's common submission policy should run and which user interactions need their own behaviour. Keyboard and assistive-technology journeys should be evaluated against the actual accessible form design.
Implicit submission has additional rules. For a supported Enter-key path with a suitable default button, the standard describes firing a click at that button. That is a different entry route from an explicit requestSubmit call, even though both may later reach the same form-submission algorithm.
For a bounded comparison, keep three rows: explicit requestSubmit with a button, the documented button activation and the applicable implicit-submission scenario. Record their earlier events separately. A common later submit event does not mean that every earlier callback or user-activation condition was identical.
CHAPTER 12 OF 19 · Discriminate the entry mechanisms
12. Distinguish a synthetic submit event from native submission
A script can dispatch a SubmitEvent at a form. That can invoke listeners under event-dispatch rules. It does not by itself call the form-submission algorithm, perform interactive constraint validation or construct and send the native request as though the visitor had submitted the form.
Giving the synthetic event a submitter value supplies event data, not an instruction to select that button's native submission lifecycle. A listener can inspect the value, but its presence is not evidence that the earlier validation and method steps occurred.
If the listener explicitly starts a custom request, that request is the result of its own code. If the listener calls a form method, that is another entry point to trace. Neither should be attributed automatically to dispatchEvent merely because the event's type was submit.
This distinction also prevents a misleading test. A test that dispatches a synthetic event and checks a handler's log may verify that handler path while leaving native validation, submitter argument checks and actual form continuation untested. Its result should be described at that narrower scope.
For the learner, ask what initiated the operation rather than what word appears in the event name. A method call, control activation and manually dispatched event can share vocabulary while having different processing responsibilities. Naming the entry mechanism is the first step towards a reconstructable trace.
CHAPTER 13 OF 19 · Preserve the timing boundaries
13. Keep asynchronous decisions inside a deliberate policy
A submit-event listener can start asynchronous work, but native event dispatch does not wait for an arbitrary returned promise before deciding whether the event was canceled. Calling preventDefault only after an await can therefore be too late to stop the original native continuation.
If the application intends an asynchronous check to decide whether native submission may proceed, it needs to cancel the current event synchronously and manage the later continuation deliberately. The complete design must address repeated attempts, changed input, errors, cancellation and which submitter belongs to the resumed action.
Do not copy a minimal await-and-requestSubmit snippet without that state policy. A resumed request can run the same listener again. An unguarded design can repeat its check or create confusing submission attempts. The example here explains the boundary rather than pretending a few lines establish a complete production pattern.
The visitor should retain their text and know whether the form is checking, ready to retry or completed. Disabling everything indefinitely after an asynchronous failure would turn a technically motivated gate into an unusable journey. Recovery belongs in the design as well as the happy path.
The abort-signal lesson provides a related route for local pending-work cancellation and current-attempt ownership. It does not define a form-resumption policy or guarantee remote rollback. Keep the mechanisms connected through the actual application state rather than assuming one cancellation object solves every submission-lifecycle problem.
CHAPTER 14 OF 19 · Preserve the timing boundaries
14. Locate input changes relative to validation and entry construction
In the normal baseline path, validation occurs before the submit event, and entry construction occurs after an uncanceled submit event. A synchronous listener can therefore change a control between those stages. The resulting entries can reflect the changed control state rather than the earlier screenshot.
Suppose group is Blue during validation. A submit listener synchronously changes note from evening visit to morning visit and does not cancel. Under the otherwise unchanged baseline, the later entry construction uses the current note value. The first value was not frozen merely because validation had already run.
Now suppose a listener makes a previously valid required field empty. The specified algorithm does not automatically restart the earlier interactive-validation step after every submit-listener mutation. This is one reason to avoid assuming that every eventual entry was validated in precisely its final form by that earlier check.
This does not recommend changing user data during submission or treating client checks as authority. It identifies a timing boundary that a real application must account for. State and verify any intentional transformations, and keep the receiving service's independent validation intact.
For a learner, create a three-time ledger: value at validation, value after listeners and value at entry construction. Ask which stage each observation establishes. This extends the existing entry-list lesson with a lifecycle account, rather than reproducing its control-by-control contribution rules under a new title.
CHAPTER 15 OF 19 · Preserve the timing boundaries
15. Recognise method masking as an object-property problem
HTML forms expose named controls through their legacy named-property behaviour. A control named or identified as submit can interfere with ordinary property access to form.submit. Code that expects a callable method can instead encounter a control object and fail before entering native submission.
The symptom can look like a submission failure, but the first problem is property resolution. The required-field state, submitter selection and cancelable event stages have not necessarily been reached. Inspect which value the expression actually obtained before diagnosing later lifecycle behaviour.
Naming controls carefully and using explicit control access can reduce ambiguity. Changing a field name can also affect the receiving data contract, so do not rename it casually in an existing application merely to make one local expression convenient. Preserve compatibility and evaluate the intended repair.
Calling a native method through its prototype is a separate technical operation; choosing the older submit method that way still carries its validation-and-event bypass behaviour. Resolving method access does not make the two submission entry points equivalent or automatically satisfy the application's policy.
The useful diagnostic lesson is to distinguish failed invocation from an invoked method that later stops. A message saying submit is not a function points towards a different first question from a valid request that produces invalid-field feedback. Fixing the first observed boundary is clearer than replacing the whole submission path without understanding it.
CHAPTER 16 OF 19 · Preserve the timing boundaries
16. Read the return value without inventing an outcome promise
The native methods discussed here return undefined. A successful return from requestSubmit is not a promise that resolves after the service approves the submission. The path can have stopped at validation or a canceled event without returning an application outcome object.
Writing await form.requestSubmit(…) does not turn that return into a network receipt. Awaiting an undefined value cannot establish that a native request completed, that a response loaded or that the receiving service saved the information. Those observations need the appropriate application or navigation evidence.
Likewise, no thrown exception is a smaller result than successful submission. The argument may have been accepted while later validation prevented continuation. Keep invocation success, lifecycle progress and service outcome in separate fields rather than using a single try/catch result as a complete status report.
For a custom application, any promise that represents an operation should have a clearly defined completion point. Received, saved and approved may be different service states. An interface should communicate the one actually established, including a recoverable uncertainty state when the outcome is not yet known.
This boundary is practical for both tests and user messages. A test can assert that a method did not throw while still needing assertions about events and native continuation. A visitor can receive useful feedback without being falsely told that a booking exists merely because a JavaScript function returned.
CHAPTER 17 OF 19 · Practise and review
17. Work a changed form sequence independently
Use a fresh fictional form with one required input named team, initially empty, and two owned submit buttons named stage. Draft has value draft and skips native validation. Final has value final and does not skip it. The form itself does not use novalidate.
First request submission with Final. The empty team fails the stated constraint, so the normal path stops before submit. Next request with Draft. The skipped check permits the path to reach submit, where a synchronous listener prevents default. The trace has reached an event but not continued natively through that attempt.
Now set team to Green and remove the cancellation for the exercise. Calling requestSubmit() without a button follows the normal validation/event path but does not invent a stage=final contribution. Calling requestSubmit(Final) supplies that explicit submitter context. Explain the difference before deriving any entry list.
Finally call the older submit method with the empty team restored. It bypasses the normal interactive-validation and submit-event stages. Do not report this as the same journey as Final merely because both operations were intended to send the form.
The changed case asks the learner to select a lifecycle before counting fields. A complete answer labels requested method, submitter, validation performed or skipped, event reached or absent, cancellation and the remaining evidence needed. The result is more useful than memorising that one method is newer.
CHAPTER 18 OF 19 · Practise and review
18. Design a review that checks stages honestly
For an authorised browser test, use fictional values and a controlled destination. Specify the form state, actual method call, submitter identity and effective submission attributes. Predict the expected stopping point before observing the result. Preserve the original inputs so a correction does not erase the case that revealed the problem.
Include an invalid normal request, a valid canceled event, a valid uncanceled path, the direct submit method and an omitted-submitter request. Add argument-error and no-validate cases when those branches belong to the implementation. These cases discriminate between mechanisms rather than repeat the same successful action with different labels.
Inspect events and request data at their actual stages. A handler log verifies that the handler ran. A constructed entry list verifies its values under the stated conditions. A network observation and service record answer later questions. Do not use one of those as a substitute for all the others.
The worked cases here are standards-based paper traces. No browser execution or live form submission is claimed for this article. A production report should name the browser, version, document context, script behaviour and observed outcomes appropriate to its scope.
For teaching, begin with a required field and one normal submitter. Stabilise by adding synchronous cancellation. Extend with no-validate state, omitted submitter and asynchronous policy. At each step ask which boundary changed and which previous conclusion must be rechecked. This makes the lifecycle useful rather than a list of method names.
CHAPTER 19 OF 19 · Practise and review
19. Continue through the stage that owns the remaining question
If a request never reaches submit, inspect argument invocation, document conditions and validation before rewriting the event handler. If the event runs but native continuation stops, inspect cancellation and the intended custom path. If the request arrives with unexpected fields, continue into the entry-list and encoding stages.
Use the existing native-form entry-list article for disabled, unchecked, empty and repeated values. Use the search-parameter lesson when a query edit changes representation. Use the event-listener registration lesson when repeated setup or cleanup changes which handler can run. These are connected stages with different rules.
For pending asynchronous work, the combined-abort-signal guide helps distinguish cancellation state from operation settlement and current-view ownership. A form still needs its own coherent recovery and submission policy. No one browser mechanism establishes the complete service outcome.
A useful independent explanation can trace the observatory example, then solve the team Draft/Final case without copying field names. It should distinguish skipped from passed validation, an event from native continuation, and a returned undefined value from confirmed service completion.
The gold standard is a form journey whose claims fit its evidence. Help the person correct an input, preserve their work and understand what happened next. Underneath that clear experience, keep the method, submitter, event, entries and service result precise enough that another reviewer can reconstruct the same account.
Continue through the verified reading route
Construct the native entry list
Construct the native entry list. Continue with contributing controls, omitted versus empty values, repetitions and the selected submitter’s contribution.
Trace parameter edits and query spelling
Trace parameter edits and query spelling. Keep later query tuple edits and serialisation separate from the native form lifecycle.
Check accepted listener registration
Check accepted listener registration. Follow callback identity and cleanup when repeated setup changes which submit handler is present.
Keep local cancellation and current attempts distinct
Keep local cancellation and current attempts distinct. Use cancellation lifetimes for cooperating pending work without treating local abort as a service rollback.
Repeated FormData fields through append and set. After identifying the form lifecycle, inspect the prepared entry list, repeated names and any object conversion that loses values.
Frequently asked questions
Does requestSubmit always send a request?
No. Argument checks, validation, event cancellation and other documented conditions can stop the native path. A successful method call is not an application receipt. Identify the first stage reached and preserve the relevant evidence.
Does submit run the usual submit listener?
The native submit method bypasses interactive constraint validation and does not fire the submit event. It still has later native processing and does not bypass the receiving service’s checks. Choose it only when that lifecycle matches the intended behaviour.
Does requestSubmit without a button select Preview or Send?
No automatic button selection is made by that method call. The form-self case has a null submitter in the submit event. Keep it separate from implicit submission and from explicitly supplying a particular owned submit button.
Can preventDefault after await stop the original native path?
An arbitrary promise returned by an event listener is not awaited by native dispatch. If an asynchronous decision controls continuation, the application needs synchronous cancellation and a complete later-resumption policy. A delayed prevention call alone does not establish that the original path stopped.
Was a real browser form submitted for these examples?
No. These are original standards-based paper traces with explicit conditions and fictional values. No live request, browser compatibility result or device check is claimed. Actual implementation testing must inspect the document, events, requests and service outcomes appropriate to its authorised scope.
Authoritative sources and further reading
WHATWG HTML Standard: form methods. Primary definitions of submit, requestSubmit, submitter argument checks and form named properties.
WHATWG HTML Standard: submission processing. Primary sequence for validation, submit events, entry construction and subsequent submission branches. The observatory and Draft/Final cases are original teaching constructions.
WHATWG DOM Standard: event dispatch. Primary context for callback invocation and event cancellation. An event listener returning a promise does not by itself define a native asynchronous form gate.
Return to the Websites subject guide, The Gold Standard of Education, or the How X Works hub.