Author: test
Date: 2005-12-21 18:46:20 +0000 (Wed, 21 Dec 2005)
New Revision: 1437

Modified:
   FormEncode/trunk/formencode/htmlfill.py
Log:
Handle <select>s that have no name (mostly safely ignore them)

Modified: FormEncode/trunk/formencode/htmlfill.py
===================================================================
--- FormEncode/trunk/formencode/htmlfill.py     2005-12-21 09:53:59 UTC (rev 
1436)
+++ FormEncode/trunk/formencode/htmlfill.py     2005-12-21 18:46:20 UTC (rev 
1437)
@@ -399,12 +399,13 @@
         self.skip_next = True
 
     def handle_select(self, attrs):
-        name = self.get_attr(attrs, 'name')
-        self.write_marker(name)
+        name = self.get_attr(attrs, 'name', False)
+        if name:
+            self.write_marker(name)
         if (self.error_class
             and self.errors.get(name)):
             self.add_class(attrs, self.error_class)
-        self.in_select = self.get_attr(attrs, 'name')
+        self.in_select = self.get_attr(attrs, 'name', False)
         self.write_tag('select', attrs)
         self.skip_next = True
         self.add_key(self.in_select)
@@ -413,15 +414,18 @@
         self.in_select = None
 
     def handle_option(self, attrs):
-        assert self.in_select, "<option> outside of <select>: %s" % 
self.getpos()
-        default = self.defaults.get(self.in_select, '')
-        
-        if self.selected_multiple(self.defaults.get(self.in_select, ''),
-                                  self.get_attr(attrs, 'value')):
-            self.set_attr(attrs, 'selected', 'selected')
-            self.add_key(self.in_select)
-        else:
-            self.del_attr(attrs, 'selected')
+        assert self.in_select is not None, (
+            "<option> outside of <select>: line %i, column %i"
+            % self.getpos())
+        if self.in_select != False:
+            default = self.defaults.get(self.in_select, '')
+
+            if self.selected_multiple(self.defaults.get(self.in_select, ''),
+                                      self.get_attr(attrs, 'value')):
+                self.set_attr(attrs, 'selected', 'selected')
+                self.add_key(self.in_select)
+            else:
+                self.del_attr(attrs, 'selected')
         self.write_tag('option', attrs)
         self.skip_next = True
 



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
FormEncode-CVS mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/formencode-cvs

Reply via email to