I think you just need : $("#contact-dialog").modal("hide");

Instead of :

(function() {$("#contact-dialog").modal("hide");})();

Since you don't need to check if document is ready...

But if you want to keep it I guess you miss a $

*$*(function() {$("#contact-dialog").modal("hide");});

Not sure about the (); at the end...

Richard



On Mon, May 26, 2014 at 11:22 PM, weheh <[email protected]> wrote:

> My bootstrap modal won't close when the user clicks the submit button.
> Console says, "Uncaught TypeError: undefined is not a function"
>
> Here's what I'm doing.
>
> # view does a load of a skeleton
> {{= LOAD('contact', 'dialog.load', ajax=True)}}
>
> # contact controller looks like this
> def dialog():
>     return dict(html=DIV(
>         DIV(
>             DIV(
>                 _class='modal-content',
>                 ),
>             _class='modal-dialog',
>             ),
>         _class='modal autoModal fade',
>         _id='contact-dialog',
>         _role='dialog',
>         aria=dict(labelledby='contact-title', hidden='true'),
>         )
>     )
>
> # document ready initializes modal
> $(document).ready(function() {
>     $("#contact-dialog").modal({
>         show: false,
>         backdrop: false,
>         keyboard: true
>         });
> });
>
> # elsewhere in view, link is created that launches modal
>         A(current.T('Contact'), _href='#',
>             _title=current.T('For a good time, call ...'),
>             _onclick="""web2py_component("%s","contact-dialog .modal-
> content");
>                 $("#contact-dialog").modal("show");""" % URL('contact',
> 'form.load'),
>             ),
>
> Custom form is loaded AOK. All form functionality works hunky-dory (which
> means AOK for you non-native-English speakers). Errors caught perfectly by
> web2py. And then, for the coupé de gras:
>
>     if contact_form.process(formname='contact_form').accepted:
>         send_email(contact_form)
>         response.flash = SPAN(T('Message sent'), _class='success')
>         response.js = '$("#contact-dialog").modal("hide");'  # <<< THIS
> IS WHERE THE TROUBLE IS!!
>
> response.js gets executed. That's where I get the "Uncaught TypeError:
> undefined is not a function" message. I interpret this to mean that
> response.js is being treated like a function but there's no function.
>
> Out of desperation, I went so far as to wrap a function around response.js
> like this:
>         response.js = '(function()
> {$("#contact-dialog").modal("hide");})();'
>
> but that was utterly futile. OK web2py community, what gives? I used to do
> this all the time with jquery ui and had no trouble. But with bootstrap,
> it's a problem.
>
> --
> 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].
> 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].
For more options, visit https://groups.google.com/d/optout.

Reply via email to