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.

Reply via email to