Class: Dommy::HTMLButtonElement

Inherits:
HTMLElement show all
Defined in:
lib/dommy/html_elements.rb

Overview

‘<button>` — type defaults to “submit” per spec.

Constant Summary

Constants inherited from Element

Element::ATTRIBUTE_NODE, Element::CDATA_SECTION_NODE, Element::COMMENT_NODE, Element::DOCUMENT_FRAGMENT_NODE, Element::DOCUMENT_NODE, Element::DOCUMENT_POSITION_CONTAINED_BY, Element::DOCUMENT_POSITION_CONTAINS, Element::DOCUMENT_POSITION_DISCONNECTED, Element::DOCUMENT_POSITION_FOLLOWING, Element::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, Element::DOCUMENT_POSITION_PRECEDING, Element::DOCUMENT_TYPE_NODE, Element::ELEMENT_NODE, Element::PROCESSING_INSTRUCTION_NODE, Element::SHADOW_HOST_TAGS, Element::TEXT_NODE

Constants included from Node

Node::ATTRIBUTE_NODE, Node::CDATA_SECTION_NODE, Node::COMMENT_NODE, Node::DOCUMENT_FRAGMENT_NODE, Node::DOCUMENT_NODE, Node::DOCUMENT_POSITION_CONTAINED_BY, Node::DOCUMENT_POSITION_CONTAINS, Node::DOCUMENT_POSITION_DISCONNECTED, Node::DOCUMENT_POSITION_FOLLOWING, Node::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, Node::DOCUMENT_POSITION_PRECEDING, Node::DOCUMENT_TYPE_NODE, Node::ELEMENT_NODE, Node::PROCESSING_INSTRUCTION_NODE, Node::TEXT_NODE

Instance Attribute Summary

Attributes inherited from Element

#__node__, #document

Instance Method Summary collapse

Methods inherited from Element

#[], #[]=, #__js_call__, #__shadow_root__, #after, #anchor_href, #append, #append_child, #attach_shadow, #attributes, #base_uri, #before, #blur, #child_element_count, #child_nodes, #children, #class_list, #class_name, #class_name=, #click, #clone_node, #closest, #compare_document_position, #contains?, #dataset, #equal_node?, #first_child, #first_element_child, #focus, #get_attribute, #get_attribute_node, #get_elements_by_class_name, #get_elements_by_tag_name, #get_html, #get_inner_html, #has_attribute?, #has_attributes?, #has_child_nodes?, #id, #id=, #initialize, #inner_html, #inner_html=, #insert_adjacent_element, #insert_adjacent_html, #insert_adjacent_text, #insert_before, #is_connected?, #last_child, #last_element_child, #live_child_nodes, #local_name, #matches?, #namespace_uri, #next_element_sibling, #next_sibling, #normalize, #on, #outer_html, #outer_html=, #owner_document, #parent_element, #parent_node, #prepend, #previous_element_sibling, #previous_sibling, #query_selector, #query_selector_all, #reflected_attr_name, #remove, #remove_attribute, #remove_attribute_node, #remove_child, #replace_child, #replace_children, #replace_with_nodes, #role, #role=, #root_node, #same_node?, #set_attribute, #set_attribute_node, #shadow_root, #slot, #slot=, #style, #tag_name, #text_content, #text_content=, #to_s, #toggle_attribute

Methods included from EventTarget

#__deliver_event__, #add_event_listener, #dispatch_event, #invoke_listener, #remove_event_listener

Constructor Details

This class inherits a constructor from Dommy::Element

Instance Method Details

#__js_get__(key) ⇒ Object



774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
# File 'lib/dommy/html_elements.rb', line 774

def __js_get__(key)
  case key
  when "type"
    type
  when "name"
    name
  when "formAction"
    form_action
  when "formEnctype"
    form_enctype
  when "formMethod"
    form_method
  when "formTarget"
    form_target
  when "formNoValidate"
    form_no_validate
  when "form"
    form
  when "labels"
    labels
  when "validity"
    validity
  when "willValidate"
    will_validate
  when "validationMessage"
    validation_message
  else
    super
  end
end

#__js_set__(key, value) ⇒ Object



805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
# File 'lib/dommy/html_elements.rb', line 805

def __js_set__(key, value)
  case key
  when "type"
    set_reflected_string("type", value)
  when "name"
    set_reflected_string("name", value)
  when "formAction"
    set_reflected_string("formaction", value)
  when "formEnctype"
    set_reflected_string("formenctype", value)
  when "formMethod"
    set_reflected_string("formmethod", value)
  when "formTarget"
    set_reflected_string("formtarget", value)
  when "formNoValidate"
    set_reflected_boolean("formnovalidate", value)
  else
    super
  end
end

#check_validityObject



761
762
763
# File 'lib/dommy/html_elements.rb', line 761

def check_validity
  true
end

#formObject



738
739
740
# File 'lib/dommy/html_elements.rb', line 738

def form
  closest("form")
end

#form_actionObject



714
715
716
# File 'lib/dommy/html_elements.rb', line 714

def form_action
  reflected_string("formaction")
end

#form_enctypeObject



718
719
720
# File 'lib/dommy/html_elements.rb', line 718

def form_enctype
  reflected_string("formenctype")
end

#form_methodObject



722
723
724
# File 'lib/dommy/html_elements.rb', line 722

def form_method
  reflected_string("formmethod")
end

#form_no_validateObject



730
731
732
# File 'lib/dommy/html_elements.rb', line 730

def form_no_validate
  reflected_boolean("formnovalidate")
end

#form_no_validate=(v) ⇒ Object



734
735
736
# File 'lib/dommy/html_elements.rb', line 734

def form_no_validate=(v)
  set_reflected_boolean("formnovalidate", v)
end

#form_targetObject



726
727
728
# File 'lib/dommy/html_elements.rb', line 726

def form_target
  reflected_string("formtarget")
end

#labelsObject



742
743
744
745
746
# File 'lib/dommy/html_elements.rb', line 742

def labels
  return [] if id.empty?

  @document.query_selector_all("label[for='#{id}']")
end

#nameObject



706
707
708
# File 'lib/dommy/html_elements.rb', line 706

def name
  reflected_string("name")
end

#name=(v) ⇒ Object



710
711
712
# File 'lib/dommy/html_elements.rb', line 710

def name=(v)
  set_reflected_string("name", v)
end

#report_validityObject



765
766
767
# File 'lib/dommy/html_elements.rb', line 765

def report_validity
  true
end

#set_custom_validity(msg) ⇒ Object



769
770
771
772
# File 'lib/dommy/html_elements.rb', line 769

def set_custom_validity(msg)
  @custom_validity_message = msg.to_s
  nil
end

#typeObject



697
698
699
700
# File 'lib/dommy/html_elements.rb', line 697

def type
  raw = @__node__["type"].to_s.downcase
  %w[submit reset button].include?(raw) ? raw : "submit"
end

#type=(v) ⇒ Object



702
703
704
# File 'lib/dommy/html_elements.rb', line 702

def type=(v)
  set_reflected_string("type", v)
end

#validation_messageObject



757
758
759
# File 'lib/dommy/html_elements.rb', line 757

def validation_message
  ""
end

#validityObject



748
749
750
# File 'lib/dommy/html_elements.rb', line 748

def validity
  @__validity ||= ValidityState.new(self)
end

#will_validateObject

Buttons don’t participate in constraint validation (per spec).



753
754
755
# File 'lib/dommy/html_elements.rb', line 753

def will_validate
  false
end