Skip to content

Commit d548a2d

Browse files
Merge branch 'dev' into handleLinkInDiv
2 parents a25d360 + 448db78 commit d548a2d

3 files changed

Lines changed: 25 additions & 9 deletions

File tree

src/htmx.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2863,6 +2863,9 @@ var htmx = (function() {
28632863
return
28642864
}
28652865
const form = getRelatedForm(elt)
2866+
if (!form) {
2867+
return
2868+
}
28662869
return getInternalData(form)
28672870
}
28682871

test/core/api.js

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -293,15 +293,17 @@ describe('Core htmx API test', function() {
293293
div.innerHTML.should.equal('foo!')
294294
})
295295

296-
// it('ajax api falls back to targeting body if target and source not set', function() {
297-
// this.server.respondWith('GET', '/test', 'foo!')
298-
// var div = make("<div id='d1'></div>")
299-
// const saveBody = document.body.innerHTML
300-
// htmx.ajax('GET', '/test', {})
301-
// this.server.respond()
302-
// document.body.innerHTML.should.equal('foo!')
303-
// document.body.innerHTML = saveBody
304-
// })
296+
it('ajax api falls back to targeting body if target and source not set', function() {
297+
var target
298+
this.server.respondWith('GET', '/test', 'foo!')
299+
htmx.on(document.body, 'htmx:configRequest', function(evt) {
300+
target = evt.detail.target
301+
return false
302+
})
303+
htmx.ajax('GET', '/test', { swap: 'none' })
304+
this.server.respond()
305+
target.should.equal(document.body)
306+
})
305307

306308
it('ajax api works with swapSpec', function() {
307309
this.server.respondWith('GET', '/test', "<p class='test'>foo!</p>")

test/core/regressions.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,4 +471,15 @@ describe('Core htmx Regression Tests', function() {
471471

472472
link.click()
473473
})
474+
475+
it('check deleting button during click does not trigger exception error in getRelatedFormData when button can no longer find form', function() {
476+
var defaultPrevented = 'unset'
477+
var form = make('<form><button>delete</button></form>')
478+
var button = form.firstChild
479+
htmx.on(button, 'click', function(evt) {
480+
evt.target.remove()
481+
})
482+
483+
button.click()
484+
})
474485
})

0 commit comments

Comments
 (0)