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 HTMLElement

#case_sensitive_attribute_names?

Methods inherited from Element

#[], #[]=, #__js_call__, #__scroll_log__, #__shadow_root__, #after, #anchor_href, #animate, #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_animations, #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



763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
# File 'lib/dommy/html_elements.rb', line 763

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



794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
# File 'lib/dommy/html_elements.rb', line 794

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



750
751
752
# File 'lib/dommy/html_elements.rb', line 750

def check_validity
  true
end

#formObject



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

def form
  closest("form")
end

#form_actionObject



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

def form_action
  reflected_string("formaction")
end

#form_enctypeObject



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

def form_enctype
  reflected_string("formenctype")
end

#form_methodObject



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

def form_method
  reflected_string("formmethod")
end

#form_no_validateObject



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

def form_no_validate
  reflected_boolean("formnovalidate")
end

#form_no_validate=(v) ⇒ Object



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

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

#form_targetObject



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

def form_target
  reflected_string("formtarget")
end

#labelsObject



731
732
733
734
735
# File 'lib/dommy/html_elements.rb', line 731

def labels
  return [] if id.empty?

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

#nameObject



695
696
697
# File 'lib/dommy/html_elements.rb', line 695

def name
  reflected_string("name")
end

#name=(v) ⇒ Object



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

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

#report_validityObject



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

def report_validity
  true
end

#set_custom_validity(msg) ⇒ Object



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

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

#typeObject



686
687
688
689
# File 'lib/dommy/html_elements.rb', line 686

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

#type=(v) ⇒ Object



691
692
693
# File 'lib/dommy/html_elements.rb', line 691

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

#validation_messageObject



746
747
748
# File 'lib/dommy/html_elements.rb', line 746

def validation_message
  ""
end

#validityObject



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

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

#will_validateObject

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



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

def will_validate
  false
end