I ended up patching the source here. To me it makes no sense that the widget would create HTML.
--- turbogears/widgets/__init__.py (revision 250)
+++ turbogears/widgets/__init__.py (working copy)
@@ -79,7 +79,7 @@
return d
def render(self, value=None, input_values={}, error=None,
- format="html", convert=True, **kw):
+ format="xml", convert=True, **kw):
if not self.template:
return None
I don't think it will fix your javascript issue, but I think it makes
it cleaner.

