• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

coreui / coreui-pro / 37463716245
96%
main: 94%

Build:
Build:
LAST BUILD BRANCH: fix/otp-validation-v6
DEFAULT BRANCH: main
Ran 06 Oct 2026 12:32PM UTC
Jobs 1
Files 81
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

06 Oct 2026 12:30PM UTC coverage: 95.828% (+0.03%) from 95.8%
37463716245

push

github

web-flow
feat(Form): validate a data-coreui-validate novalidate form on submit (#1573)

A form with data-coreui-validate and novalidate got no help from the
library on submit. The validation page had a starter script to copy that
blocked an invalid submit and set aria-invalid, but it moved no focus and
linked no message, so a screen reader landed nowhere and read the error of
no field; the examples did not wire aria-describedby either.

The new Form plugin takes that job through the data API. It validates the
form in the capture phase, before the handlers of the form, with the new
validateForm() of the form-validation util: the cancelable
validate.coreui.form gets isValid; unless it is prevented, validity is read
again with checkValidity(), so a custom validity the handler set counts,
the controls show their state (.is-invalid and aria-invalid on the invalid
ones, the message the stylesheet shows for each in aria-describedby while
it stays invalid, .is-valid under data-coreui-validate="valid", kept
current on input), and focus moves to the first invalid control unless
the handler moved it. An invalid submit is prevented, so the handlers of
the form see defaultPrevented. A submitter with formnovalidate is not
validated. Resetting the form clears the state, except after a submit
made in the same task, and a pending reset does nothing once the instance
is disposed. validate() runs the same flow on demand; reset() and
dispose() remove what the plugin added. It does not stop propagation,
since the date and time inputs read the submit on the form.

The util now owns the state classes it adds, as it owns aria-invalid: a
.is-invalid or .is-valid the page or a component set stays, and the util
takes its own classes off while one is there. A server-side error is no
longer wiped by the next submit or keystroke, and clearing one owner's
marks, the stepper's or the form's, leaves the other's in place.

The starter script is gone from the validation page, which now document... (continued)

7205 of 7769 branches covered (92.74%)

Branch coverage included in aggregate %.

72 of 72 new or added lines in 2 files covered. (100.0%)

12478 of 12771 relevant lines covered (97.71%)

1578.57 hits per line

Jobs
ID Job ID Ran Files Coverage
1 37463716245.1 06 Oct 2026 12:32PM UTC 81
95.83
GitHub Action Run
Source Files on build 37463716245
  • Tree
  • List 81
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #37463716245
  • 84172647 on github
  • Prev Build on v6-dev (#37455511477)
  • Next Build on v6-dev (#37477120365)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc