# File lib/cgikit/elements/browser.rb, line 82
    def append_to_response( response, context )
      take_value(:list)
      take_value(:selections)
      take_value(:selected_values)
      take_bool(:escape)
      take_bool(:multiple)
      take_bool(:enabled)
      selattrs = { :name => name_value(context),
        :multiple => @values[:multiple], :disabled => !@values[:enabled] }
      selattrs.update(optional_attributes())
      seltag = HTMLTag.select(selattrs, other_attribute())
      optags = []
      options = values_from_request(context.request, context)

      if @values[:list] then
        @values[:list].each_with_index do |item, index|
          set_value(:item, item)
          take_value(:value)
          take_value(:display)
          attrs = {}
          if (@values[:selections] and @values[:selections].include?(item)) or \
            (options and 
               (options.include?(@values[:value].to_s) or \
                options.include?(index.to_s))) then
            attrs[:selected] = true
          end
          if @values[:value] then
            attrs[:value] = escaped_string(@values[:value], @values[:escape])
          else
            attrs[:value] = index
          end
          display = @values[:display] || item.to_s
          content = escaped_string(display, @values[:escape])
          optags << HTMLTag.option(attrs, '', content)
        end
      end

      ask(:browser_will_generate_tags) do |d|
        seltag, optags = d.browser_will_generate_tags(seltag, optags) \
          || seltag, optags
      end

      response.content << seltag.open_tag
      response.content << "\n"
      optags.each do |tag|
        response.content << tag.container_tag
        response.content << "\n"
      end
      response.content << seltag.close_tag
    end