diff --git a/lib/galaxy/tools/parameters/basic.py b/lib/galaxy/tools/parameters/basic.py
index 5e1ed5bdf12..e75f8eb4c6a 100644
--- a/lib/galaxy/tools/parameters/basic.py
+++ b/lib/galaxy/tools/parameters/basic.py
@@ -474,14 +474,14 @@ class SelectToolParameter( ToolParameter ):
blah
>>> print p.get_html()
- I am X
- I am Y
- I am Z
+
+
+
>>> print p.get_html( value=["x","y"])
- I am X
- I am Y
- I am Z
+
+
+
>>> print p.to_param_dict_string( ["y", "z"] )
y,z
"""
diff --git a/lib/galaxy/web/form_builder.py b/lib/galaxy/web/form_builder.py
index da791493afd..f27e5626f53 100644
--- a/lib/galaxy/web/form_builder.py
+++ b/lib/galaxy/web/form_builder.py
@@ -184,16 +184,16 @@ class SelectField(BaseField):
>>> t.add_option( "tuti", 1 )
>>> t.add_option( "fruity", "x" )
>>> print t.get_html()
- tuti
- fruity
+
+
>>> t = SelectField( "bar", multiple=True, display="checkboxes" )
>>> t.add_option( "automatic", 3 )
>>> t.add_option( "bazooty", 4, selected=True )
>>> print t.get_html()
- automatic
- bazooty
+
+
"""
def __init__( self, name, multiple=None, display=None, refresh_on_change=False, refresh_on_change_values=[], size=None ):
self.name = name
@@ -232,13 +232,14 @@ class SelectField(BaseField):
for text, value, selected in self.options:
style = ""
escaped_value = escape( str( value ), quote=True )
+ uniq_id = "%s%s|%s" % (prefix, self.name, escaped_value)
if len(self.options) > 2 and ctr % 2 == 1:
style = " class=\"odd_row\""
selected_text = ""
if selected:
- selected_text = "checked='checked'"
- rval.append( '' % \
- ( style, prefix, self.name, escaped_value, escaped_value, selected_text, self.get_disabled_str( disabled ), escaped_value, text ) )
+ selected_text = " checked='checked'"
+ rval.append( '' % \
+ ( style, prefix, self.name, escaped_value, uniq_id, selected_text, self.get_disabled_str( disabled ), uniq_id, text ) )
ctr += 1
return "\n".join( rval )
def get_html_radio( self, prefix="", disabled=False ):
@@ -246,18 +247,23 @@ class SelectField(BaseField):
ctr = 0
for text, value, selected in self.options:
style = ""
+ escaped_value = escape( str( value ), quote=True )
+ uniq_id = "%s%s|%s" % (prefix, self.name, escaped_value)
if len(self.options) > 2 and ctr % 2 == 1:
style = " class=\"odd_row\""
- if selected: selected_text = " checked"
- else: selected_text = ""
- rval.append( '%s
' % \
+ selected_text = ""
+ if selected:
+ selected_text = " checked='checked'"
+ rval.append( '' % \
( style,
prefix,
self.name,
self.refresh_on_change_text,
- escape( str( value ), quote=True ),
+ escaped_value,
+ uniq_id,
selected_text,
self.get_disabled_str( disabled ),
+ uniq_id,
text ) )
ctr += 1
return "\n".join( rval )