| Class | WWW::Mechanize::MultiSelectList |
| In: |
lib/mechanize/form_elements.rb
|
| Parent: | Field |
This class represents a select list where multiple values can be selected. MultiSelectList#value= accepts an array, and those values are used as values for the select list. For example, to select multiple values, simply do this:
list.value = ['one', 'two']
Single values are still supported, so these two are the same:
list.value = ['one'] list.value = 'one'
| options | [RW] |
# File lib/mechanize/form_elements.rb, line 119
119: def initialize(name, node)
120: value = []
121: @options = WWW::Mechanize::List.new
122:
123: # parse
124: (node/'option').each do |n|
125: option = Option.new(n, self)
126: @options << option
127: end
128: super(name, value)
129: end
# File lib/mechanize/form_elements.rb, line 131
131: def query_value
132: value ? value.collect { |v| [name, v] } : ''
133: end
Select all options
# File lib/mechanize/form_elements.rb, line 142
142: def select_all
143: @value = []
144: options.each { |o| o.tick }
145: end
Select no options
# File lib/mechanize/form_elements.rb, line 136
136: def select_none
137: @value = []
138: options.each { |o| o.untick }
139: end
Get a list of all selected options
# File lib/mechanize/form_elements.rb, line 148
148: def selected_options
149: @options.find_all { |o| o.selected? }
150: end
# File lib/mechanize/form_elements.rb, line 164
164: def value
165: value = []
166: value.push(*@value)
167: value.push(*selected_options.collect { |o| o.value })
168: value
169: end