Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor v3 twig to support multiple recaptcha on the same page, and … #295

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

minimit
Copy link

@minimit minimit commented Jan 5, 2023

Hello, i've forked this plugin in our webgriffe projects, and with many iterations this is the final version of the recaptcha v3 we could come to.

It has different features:

  • it supports multiple recaptcha on the same page
  • it loads the recaptcha js only if the form is visible (not display: none) useful for pagespeed if you have the recaptcha on all pages inside modal for exampl
  • it if the recaptcha form has a custom submit addEventListener, it prevents also them, and it calls them triggering click on the submit button instead of form.submit() which doesn't trigger submit listeners

…load recaptcha javascript only if form is visible, and support custom form submit listeners
@minimit
Copy link
Author

minimit commented Jan 5, 2023

Closes #151, closes #82, closes #290

@minimit
Copy link
Author

minimit commented Jan 5, 2023

Are there tests?

@Seb33300
Copy link
Contributor

Just tested this PR on my project having issues related to multiple forms with recaptcha on a same page.
And this fixed our issue.

@mlaan-hnet
Copy link

Thank you for addressing the multiple recaptcha problem with your fix. I've been experiencing the same issue. I noticed that you submitted this pull request nearly a year ago. Could you please provide information on the steps required to incorporate your fix into the bundle?

@grimgit
Copy link

grimgit commented Feb 20, 2024

Hi,
the current code use the form submit() function, so the submit input is not submitted and $form->get('submit')->isCliccked() is always false.

The PR try to resolve the issue calling form.querySelector('[type="submit"]').click() but:

  • if there are more then one submit input it always trigger the first submit input, so if there are a delete button and a save button in the same form the delete button is always triggered (!!!)
  • if the form has no submit input the form is never submitted

I propose to call the click function on the event submitter (e.submitter) if present, otherwise fallback to the form submit() function

@minimit
Copy link
Author

minimit commented Feb 21, 2024

Hi, the current code use the form submit() function, so the submit input is not submitted and $form->get('submit')->isCliccked() is always false.

The PR try to resolve the issue calling form.querySelector('[type="submit"]').click() but:

  • if there are more then one submit input it always trigger the first submit input, so if there are a delete button and a save button in the same form the delete button is always triggered (!!!)
  • if the form has no submit input the form is never submitted

I propose to call the click function on the event submitter (e.submitter) if present, otherwise fallback to the form submit() function

Yes using e.submitter is better, I've made the commit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants