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::JS_METHOD_NAMES, 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

#document

Instance Method Summary collapse

Methods inherited from HTMLElement

#case_sensitive_attribute_names?

Methods inherited from Element

#[], #[]=, #__dommy_backend_node__, #__internal_shadow_root__, #__js_call__, #__js_method_names__, #__test_scroll_log__, #after, #anchor_href, #animate, #append, #append_child, #at_xpath, #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, #path, #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, #xpath

Methods included from EventTarget

#__internal_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



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
804
805
806
807
# File 'lib/dommy/html_elements.rb', line 778

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



809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
# File 'lib/dommy/html_elements.rb', line 809

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



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

def check_validity
  true
end

#formObject



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

def form
  closest("form")
end

#form_actionObject



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

def form_action
  reflected_string("formaction")
end

#form_enctypeObject



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

def form_enctype
  reflected_string("formenctype")
end

#form_methodObject



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

def form_method
  reflected_string("formmethod")
end

#form_no_validateObject



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

def form_no_validate
  reflected_boolean("formnovalidate")
end

#form_no_validate=(v) ⇒ Object



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

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

#form_targetObject



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

def form_target
  reflected_string("formtarget")
end

#labelsObject



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

def labels
  return [] if id.empty?

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

#nameObject



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

def name
  reflected_string("name")
end

#name=(v) ⇒ Object



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

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

#report_validityObject



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

def report_validity
  true
end

#set_custom_validity(msg) ⇒ Object



773
774
775
776
# File 'lib/dommy/html_elements.rb', line 773

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

#typeObject



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

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

#type=(v) ⇒ Object



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

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

#validation_messageObject



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

def validation_message
  ""
end

#validityObject



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

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

#will_validateObject

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



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

def will_validate
  false
end