33< head >
44 < meta charset ="utf-8 ">
55 < meta name ="viewport " content ="width=device-width, initial-scale=1 ">
6- < script type ="module " src ="../error-handling-element.js "> </ script >
6+ < link rel ="stylesheet " type ="text/css " href ="../css/util.css ">
7+
8+ < script type ="module ">
9+ import { ErrorHandlingElement } from "../src/error-handling-element.js"
10+ import { clearErrorListsInForm } from "../src/rendering.js"
11+
12+ class CustomErrorHandleElement extends ErrorHandlingElement {
13+ connectedCallback ( ) {
14+ super . connectedCallback ( )
15+
16+ this . form . addEventListener ( `submit` , ( event ) => {
17+ if ( ! event . defaultPrevented ) {
18+ event . preventDefault ( )
19+ clearErrorListsInForm ( this . form )
20+ console . debug ( event )
21+ document . getElementById ( `easy-console` ) . value += "Submit successful\n"
22+ }
23+ } )
24+ }
25+ }
26+
27+ if ( ! window . customElements . get ( 'custom-error-handling' ) ) {
28+ window . customElements . define ( 'custom-error-handling' , CustomErrorHandleElement ) ;
29+ }
30+ </ script >
31+
32+ < style >
33+ form {
34+ border : 1px solid blue;
35+ padding : 1em ;
36+ }
37+
38+ [data-error-container ] {
39+ border : 1px solid red;
40+ }
41+ </ style >
42+
743 < title > </ title >
844</ head >
945< body >
1046 < h1 > Hello</ h1 >
1147
12- < pf-error-handling > </ pf-error-handling >
48+ < custom-error-handling >
49+ < form id ="test-form " aria-describedby ='test-form-error-container '>
50+ < input type ="email " id ="email-field " aria-describedby ="email-field-errors " minlength ="4 ">
51+ < section id ="email-field-errors " data-error-container >
52+ < ul >
53+ < li data-visible data-error-type ="error_1 "> ad-hoc error message 1</ li >
54+ < li data-preserve data-error-type ="tooShort "> Custom Preserved Error: Must be at least 4 characters</ li >
55+ </ ul >
56+ </ section >
57+
58+ < section id ="test-form-error-container " data-error-container >
59+ < h2 > Form Errors</ h2 >
60+ < ul >
61+ < li data-visible data-error-type ="error_2 "> ad-hoc error message 2</ li >
62+ < li data-visible data-preserve data-error-type ="error_3 "> Preserved Error</ li >
63+ </ ul >
64+ </ section >
65+
66+ < button type ="submit "> Submit</ button >
67+ </ form >
68+ </ custom-error-handling >
69+
70+ < textarea id ="easy-console " readonly rows =20 > </ textarea >
71+
72+ < template id ="pf-error-list-item-template ">
73+ < li > < span > ‼️</ span > < span data-error-message > </ span > </ li >
74+ </ template >
1375</ body >
1476</ html >
0 commit comments