diff --git a/tracker/src/custom-events.js b/tracker/src/custom-events.js index e159dc23b99a..a96753e58f33 100644 --- a/tracker/src/custom-events.js +++ b/tracker/src/custom-events.js @@ -292,7 +292,7 @@ export function init() { function submitForm() { if (!formSubmitted) { formSubmitted = true - form.submit() + form.requestSubmit(event.submitter) // ← FIX: preserves the button info } } diff --git a/tracker/test/form-submissions.spec.ts b/tracker/test/form-submissions.spec.ts index 24c5c66d7115..5ad3d10f3b7b 100644 --- a/tracker/test/form-submissions.spec.ts +++ b/tracker/test/form-submissions.spec.ts @@ -299,3 +299,36 @@ test.describe('form submissions feature is enabled', () => { }) }) }) + +test('preserves submit button value for forms with custom events', async ({ page }, { testId }) => { + const { url } = await initializePageDynamically(page, { + testId, + scriptConfig: { ...DEFAULT_CONFIG, formSubmissions: true }, + bodyContent: /* HTML */ ` +
+ ` + }) + + await expectPlausibleInAction(page, { + action: async () => { + await page.goto(url) + await ensurePlausibleInitialized(page) + await page.click('button[value="Google"]') + }, + shouldIgnoreRequest: [isPageviewEvent, isEngagementEvent], + expectedRequests: [ + { + n: 'login', + u: `${LOCAL_SERVER_ADDR}${url}`, + p: e.objectContaining({ + provider: 'Google' + }) + } + ] + }) +})