Skip to content

fix: handle target attribute on remote form redirects#15457

Merged
teemingc merged 10 commits intosveltejs:mainfrom
ai-man-codes:fix/remote-form-target-blank
Mar 6, 2026
Merged

fix: handle target attribute on remote form redirects#15457
teemingc merged 10 commits intosveltejs:mainfrom
ai-man-codes:fix/remote-form-target-blank

Conversation

@ai-man-codes
Copy link
Contributor

@ai-man-codes ai-man-codes commented Feb 28, 2026

closes #15197


  • It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
  • This message body should clearly illustrate what problems it solves.
  • Ideally, include a test that fails without this PR but passes with it.

Tests

  • Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

  • If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. Changesets that add features should be minor and those that fix bugs should be patch. Please prefix changeset messages with feat:, fix:, or chore:.

Edits

  • Please ensure that 'Allow edits from maintainers' is checked. PRs without this option may be closed.

Problem

Remote forms with target="_blank" did not open the redirect destination in a new tab. Instead, the current tab would navigate to the redirect URL, making target="_blank" completely ignored for both internal and external redirects.

Solution

Check the form element's target attribute before deciding how to navigate. If it's _blank or _new, use window.open() instead of _goto()

I have ran all the tests and there were no issues.

@changeset-bot
Copy link

changeset-bot bot commented Feb 28, 2026

🦋 Changeset detected

Latest commit: e530b52

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@sveltejs/kit Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@svelte-docs-bot
Copy link

@ai-man-codes
Copy link
Contributor Author

@teemingc can you please review this PR ? Thank you

@teemingc teemingc added the forms Stuff relating to forms and form actions label Mar 5, 2026
Copy link
Member

@teemingc teemingc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR! There are some additional edge cases we need to account for which I've highlighted in the comments. Also, there might be a way to simplify the window opening handling.

@ai-man-codes
Copy link
Contributor Author

Hey @teemingc, thanks for the detailed review. I have updated the code and yes there was a better way of handling this, I tried to implement that and also added an additional test.

Copy link
Member

@teemingc teemingc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@teemingc teemingc merged commit 56fa4fa into sveltejs:main Mar 6, 2026
25 checks passed
@github-actions github-actions bot mentioned this pull request Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

forms Stuff relating to forms and form actions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remote form does not respect target="_blank"

2 participants