diff options
Diffstat (limited to 'chimere/widgets.py')
-rw-r--r-- | chimere/widgets.py | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/chimere/widgets.py b/chimere/widgets.py index a12d364..18a9ef1 100644 --- a/chimere/widgets.py +++ b/chimere/widgets.py @@ -253,9 +253,17 @@ class DatePickerWidget(forms.TextInput): """ def render(self, *args, **kwargs): rendered = super(DatePickerWidget, self).render(*args, **kwargs) - rendered += "\n<script type='text/javascript'>\n"\ - " $(function() {$('#%s').datepicker();});\n"\ - "</script>\n" % kwargs['attrs']['id'] + rendered += """<script type='text/javascript'> + if (typeof(datepicker_list) === 'undefined') datepicker_list = []; + datepicker_list.push( + function(){ + $('#%s').datepicker(); + } + ); + $(function() { + for (idx in datepicker_list) datepicker_list[idx](); + }); + </script>""" % kwargs['attrs']['id'] return mark_safe(rendered) @@ -755,7 +763,11 @@ class MultiSelectWidget(forms.SelectMultiple): def render(self, name, value, attrs=None): rendered = super(MultiSelectWidget, self).render(name, value, attrs) rendered += """<hr class='spacer'/><script type='text/javascript'> - $("#id_%(name)s").chosen({placeholder_text_multiple: "%(title)s"}); + var render_id_%(name)s = function(){ + $("#id_%(name)s").chosen({placeholder_text_multiple: "%(title)s"}); + } + init_widget_list.push(render_id_%(name)s); + render_id_%(name)s(); </script> <style> .form-row, .related-widget-wrapper { |