File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -105,7 +105,7 @@ function getMatches(el: HTMLElement): RemoteFormHandler[] {
105105}
106106
107107function handleSubmit ( event : Event ) {
108- if ( ! ( event . target instanceof HTMLFormElement ) ) {
108+ if ( ! ( event . target instanceof HTMLFormElement ) || event . defaultPrevented ) {
109109 return
110110 }
111111 const form = event . target
Original file line number Diff line number Diff line change @@ -139,4 +139,20 @@ describe('remoteForm', function () {
139139 button . form . action += '?a=b'
140140 button . click ( )
141141 } )
142+
143+ it ( 'does not submit the request if default is already prevented' , function ( ) {
144+ // prevent default before this event reaches the remote-form listener
145+ const defaultPreventHandler = event => event . preventDefault ( )
146+ document . addEventListener ( 'submit' , defaultPreventHandler , { capture : true } )
147+
148+ let handlerCalled = false
149+ remoteForm ( '.my-remote-form' , async function ( ) {
150+ handlerCalled = true
151+ } )
152+
153+ document . querySelector ( 'button[type=submit]' ) . click ( )
154+
155+ assert . isFalse ( handlerCalled )
156+ document . removeEventListener ( 'submit' , defaultPreventHandler , { capture : true } )
157+ } )
142158} )
You can’t perform that action at this time.
0 commit comments