Yes, that appears to be a bug. web2y_ajax_init() (in
/static/js/web2py_ajax.js) is called when the page is first loaded as well
as whenever a new component is loaded. That function binds a number of
event handlers, so every time it is called, it binds additional identical
event handlers to the same elements (and because it uses .live() to do the
binding, even components loaded later will add event handlers to components
loaded earlier). If you're clicking 8 times to dismiss the OK, I'm guessing
you've got 7 components on the page (i.e., web2py_ajax_init() is called 8
times, including when the main page is loaded, so adds the event handler 8
times).
I'm working on a more general fix (so calls to web2py_ajax_init() will only
bind events for elements within the component being loaded), but a quick
short-term fix is to replace:
jQuery("input[type='checkbox'].delete").live('click', function(){
if(this.checked) if(!confirm(confirm_message)) this.checked=false; });
with:
jQuery("input[type='checkbox'].delete").live('click', function(e){
if(this.checked) if(!confirm(confirm_message)) this.checked=false;
e.stopImmediatePropagation(); });
Note, that will prevent you from being able to attach any other event
handlers that would trigger after the checkbox click because it stops the
event propagation.
Anthony
On Monday, October 31, 2011 9:43:42 AM UTC-4, glimmung wrote:
>
> Hi,
>
> I've converted some fiddly admin pages to use web2py's Ajax components,
> which has simplified them enormously.
>
> However, where I'm using CRUD update forms and deleteable=True, the
> delete confirmation pop-up does not work as expected.
>
> I do see the "Are you sure you want to delete this object?" pop-up, but
> it only responds immediately to the "cancel" button - "cancel" clears
> the dialogue and leaves the checkbox unchecked, "OK" does not initially
> appear to respond. However, if I click "OK" multiple times (8-ish) it
> eventually clears and sets the checkbox checked.
>
> Am I missing something obvious?
>
> I'm somewhat at a loss as to how to troubleshoot this one - I've been
> spoiled by web2py's usual "just works" behaviour!
>
>
> --
>
> Regards,
>
> PhilK
>
>
> 'a bell is a cup...until it is struck'
>
>