add multi select list
parent
9f6893c67b
commit
18e948616a
|
@ -5,6 +5,7 @@ require "./form/text"
|
|||
require "./form/textarea"
|
||||
require "./form/hidden"
|
||||
require "./form/button"
|
||||
require "./form/multi_select_list"
|
||||
require "./utils/element_matcher"
|
||||
|
||||
class MechanizeCr::Form
|
||||
|
@ -14,6 +15,7 @@ class MechanizeCr::Form
|
|||
getter fields : Array(FormContent::Field)
|
||||
getter checkboxes : Array(FormContent::CheckBox)
|
||||
getter radiobuttons : Array(FormContent::RadioButton)
|
||||
getter selectboxes : Array(FormContent::MultiSelectList)
|
||||
getter buttons : Array(FormContent::Button)
|
||||
getter enctype : String
|
||||
getter method : String
|
||||
|
@ -26,6 +28,7 @@ class MechanizeCr::Form
|
|||
@fields = Array(FormContent::Field).new
|
||||
@checkboxes = Array(FormContent::CheckBox).new
|
||||
@radiobuttons = Array(FormContent::RadioButton).new
|
||||
@selectboxes = Array(FormContent::MultiSelectList).new
|
||||
@buttons = Array(FormContent::Button).new
|
||||
@action = node.fetch("action", "")
|
||||
@method = node.fetch("method", "GET").upcase
|
||||
|
@ -99,6 +102,17 @@ class MechanizeCr::Form
|
|||
next if type == "reset"
|
||||
@buttons << FormContent::Button.new(node, @node)
|
||||
end
|
||||
|
||||
# Find all select tags
|
||||
@node.css("select").each do |node|
|
||||
node = node.as(Myhtml::Node)
|
||||
next if node["name"].empty?
|
||||
if node.has_key?("multiple")
|
||||
@selectboxes << FormContent::MultiSelectList.new(node)
|
||||
else
|
||||
#@fields << SelectList.new(node)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private def build_query_string(params : Array(Array(String)))
|
||||
|
|
|
@ -16,4 +16,5 @@ struct Myhtml::Node
|
|||
delegate :[]=, to: attributes
|
||||
delegate :[]?, to: attributes
|
||||
delegate :fetch, to: attributes
|
||||
delegate :has_key?, to: attributes
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue