Hello Calvin,

This seems interesting. I was planning to work un this when I get time but
it looks that what you did is a good start!

I have a question, I am not sure how you was thinking to initialize the
widget on a select type field??

Should I do something like this in order to use your typeahead autocomplete
widget? :

db.table.field.widget = lambda field, value: bs_typeahead(field, value,
???kwargs)

??

Thanks

Richard




On Mon, Mar 11, 2013 at 4:45 AM, Calvin <calvin....@gmail.com> wrote:

> If of interest to anyone, eventually, I made my own autocomplete based on
> Bootstrap Typeahead:
>
> def bs_typeahead(f, v, **kwargs):
>     options = {'_data-provide':'textahead'}
>     options.update(kwargs)
>     return CAT(
>         INPUT(_type="text", _class="string", _id="%s_%s_ac" % (f.
> _tablename, f.name), **options),
>         INPUT(_type="hidden", _id="%s_%s" % (f._tablename, f.name), _name=
> f.name, _value=v, requires=f.requires),
>         SCRIPT("$($('#%(table)s_%(field)s_ac').typeahead({minLength: 3,
> source:function(query,process){console.log(query); return
> $.get('%(url)s.json', {'_ac_%(table)s_%(field)s': query},
> function(data){return process(data.options)})},
> highlighter:function(item){return
> item.split('_')[1]},updater:function(item){ var p=item.split('_');
> $('#%(table)s_%(field)s').val(p[0]); return p[1]}}))" % {'url':URL(),
> 'table':f._tablename, 'field':f.name})
>     )
>
> and with the appropriate handler for request.vars['ac_%s_%s'
> %(f._tablename, f.name)]
>
> --
>
> ---
> 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/groups/opt_out.
>
>
>

-- 

--- 
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/groups/opt_out.


Reply via email to