the logic behind is suppressing double submission. web2py disables the 
submit button when you click on it until a proper response is returned. 
Don't EVER use inline javascript, and don't use web2py.js internal 
functions without proper knowledge of the inner workings :-P  

On Wednesday, August 13, 2014 8:52:25 PM UTC+2, Michael Beller wrote:
>
> I just encountered the same problem.  I'm using a Bootstrap Modal form and 
> encountering the same problem - the form sends and receives data via AJAX 
> but then adds the 'disabled' class to the button.
>
> I found this logic in web2py.js but I'm not clear on what's happening and 
> why:
>
>     // Form input elements disabled during form submission
>     disableSelector: 'input, button, textarea, select',
>     // Form input elements re-enabled after form submission
>     enableSelector: 'input:disabled, button:disabled, textarea:disabled, 
> select:disabled',
>
> Have either of you found a solution?
>
> On Sunday, August 3, 2014 2:53:50 PM UTC-4, Reza Amindarbari wrote:
>>
>> Did you figure out what was wrong? I faced the same issue. Everything 
>> works fine when I take out the ajax function.
>>
>> On Sunday, May 4, 2014 9:33:05 AM UTC-4, John Drake wrote:
>>>
>>> I've created a simple ajax form to update a "post" database.  For some 
>>> strange reason when I post a new message, the button greys out.
>>>
>>> Here is the model:
>>>
>>> db.define_table('t_post',
>>>     Field('f_post', type='text',
>>>           label=T('Post')),
>>>     auth.signature,
>>>     format='%(f_post)s')
>>>
>>> Here are my controller functions.
>>>
>>> def ajax_post():
>>>     posts = crud.select(db.t_post, fields=['f_post'], query = 
>>> db.t_post.created_by == auth.user,
>>>            headers={'t_post.f_post': 'Post'}, orderby = 
>>> ~db.t_post.created_on)
>>>     search = crud.search(db.t_post)
>>>     return dict(posts=posts, search=search)
>>>
>>> def new_post():
>>>     postdata = request.vars.post
>>>     db.t_post.insert(f_post = postdata)
>>>     posts = crud.select(db.t_post, fields=['f_post'], query = 
>>> db.t_post.created_by == auth.user,
>>>            headers={'t_post.f_post': 'Post'}, orderby = 
>>> ~db.t_post.created_on)
>>>     return posts
>>>
>>> Here is the model:
>>>
>>> {{extend 'layout.html'}}
>>> <h1>This is the default/ajax_post.html template</h1>
>>> <form onsubmit="return false">
>>>     <div>Post : <input name="post"/></div>
>>>     <div><button onclick="ajax('new_post', ['post'],'results')">Post 
>>> Message</button></div>
>>> </form>
>>> <div id="results">
>>>     {{=posts}}
>>> </div>
>>> <div>
>>>     {{=search[0]}}
>>> </div>
>>>
>>> At first I used an input field with type "submit" for the submit 
>>> button.  When that happened, it would 
>>> grey out and the value would set to "Working....".  At least now button 
>>> text doesn't change, but it
>>> it still grey's out.  Inspecting the element in Firefox I get:
>>>
>>> <button value="Working..." class="btn disabled" 
>>> onclick="ajax('new_post', ['post'],'results')">Post Message</button>
>>>
>>> Why?  I didn't ask it to change the button's class to disabled.  And it 
>>> stays greyed even though
>>> the results have returned and my "results" div has been properly 
>>> updated.  I can still click on
>>> the button, but it just appears disabled. 
>>>
>>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to