got it, thank you very much ! On Sat, Jun 1, 2019 at 11:20 AM Anthony <[email protected]> wrote:
> In order for web2py to submit forms inside LOAD components via Ajax, it > must set up its own event handler to "trap" the form submission, so it can > be intercepted -- this is done here: > https://github.com/web2py/web2py/blob/master/applications/welcome/static/js/web2py.js#L307 > . > > If you don't want web2py to trap the form, try: > > <form class="no_trap" ...> > > Alternatively, create the entire form via Javascript *after* the > component has been loaded. > > Anthony > > On Friday, May 31, 2019 at 3:57:50 PM UTC-5, Vlad wrote: >> >> sorry for keeping posting about this. I am just totally stuck. I am sure >> that I am missing something very basic. Here is the complete code: >> >> <form action="{{=URL('credit_card_saved')}}" method="post" id= >> "payment-form2"> >> <button>Submit</button> >> </form> >> >> >> <script> >> >> >> function CustomizeFormSubmission2(event) { >> event.preventDefault(); >> var form = document.getElementById('payment-form2'); >> var element = document.createElement('input'); >> element.setAttribute('type', 'hidden'); >> element.setAttribute('name', 'stripeToken'); >> element.setAttribute('value', "THIS_IS_TOKEN"); >> form.appendChild(element); >> form.submit(); >> } >> >> >> var form = document.getElementById('payment-form2'); >> form.addEventListener('submit', CustomizeFormSubmission2); >> >> >> So when this is placed in the view straight - it's perfect. Behaves as >> expected. >> >> However, if it's placed into the component via LOAD, it grossly >> malfunctions. Not only the post_vars is empty, but even >> event.preventDefault(); >> >> doesn't work either (if I remove form.submit, it's still immediately >> submitting the form). >> What am I missing about how LOAD is expected to operate?? How do I make >> it work?? >> >> >> On Friday, May 31, 2019 at 3:41:14 PM UTC-4, Vlad wrote: >>> >>> I've narrowed down what's going on, but still stuck... >>> >>> this is how the form is being submitted (from inside of the component): >>> >>> function stripeTokenHandler(token) { >>> var form = document.getElementById('payment-form'); >>> var hiddenInput = document.createElement('input'); >>> hiddenInput.setAttribute('type', 'hidden'); >>> hiddenInput.setAttribute('name', 'stripeToken'); >>> hiddenInput.setAttribute('value', token.id); >>> form.appendChild(hiddenInput); >>> form.submit(); >>> } >>> >>> it seems to me that document.createElement('input') doesn't create an >>> element under the topmost document (I don't really understand this well, >>> but when this code is in the main html - not in the component- it works >>> correctly and submits the proper data to the form action url) >>> >>> I just can't think of anything else here - those variables that are >>> hardcoded in the form, i.e. not submitted via created on the fly in input >>> fields - are passed over correctly. >>> >>> Greatly appreciate some help... >>> >>> On Friday, May 31, 2019 at 2:38:06 PM UTC-4, Vlad wrote: >>>> >>>> I am loading a component with LOAD. the component has the form on it. >>>> the form is submitting via post method. >>>> >>>> request.post_vars is empty. the variables don't go through. >>>> >>>> when I copy the same very code and pasting it in the view (i.e. instead >>>> of the LOAD component - while taking the LOAD line out) - with not even a >>>> single change, just copy and paste - >>>> request.post_vars is correct - filled with whichever parameters are >>>> coming from the form. >>>> >>>> is this a feature or a bug? :) >>>> >>>> is there something subtle I am missing about those components? I've >>>> tried both - loading the component with ajax true and ajax false - same >>>> thing. And the same thing happens when I tried to submit with get method. >>>> >>>> Other than not having vars set - everything else functions right. The >>>> form is submitted... >>>> >>>> Any ideas? >>>> >>>> >>>> -- > Resources: > - http://web2py.com > - http://web2py.com/book (Documentation) > - http://github.com/web2py/web2py (Source code) > - https://code.google.com/p/web2py/issues/list (Report Issues) > --- > You received this message because you are subscribed to a topic in the > Google Groups "web2py-users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/web2py/dDzwFQlxl5w/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/web2py/fab650af-3326-4a7b-a394-05eca5bb56ea%40googlegroups.com > <https://groups.google.com/d/msgid/web2py/fab650af-3326-4a7b-a394-05eca5bb56ea%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/CABZ%2BKCA1AsDoXW8wh9%3DV%3D-zDnEud26bqoGkyukB%2BtVgyfTfJ1g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

