Просмотр исходного кода

LibWeb: Add method `HTMLInputElement::is_single_line()`

rmg-x 1 год назад
Родитель
Сommit
b36a78a798

+ 15 - 0
Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp

@@ -2116,6 +2116,21 @@ bool HTMLInputElement::is_submit_button() const
         || type_state() == TypeAttributeState::ImageButton;
 }
 
+// https://html.spec.whatwg.org/multipage/input.html#text-(type=text)-state-and-search-state-(type=search)
+// https://html.spec.whatwg.org/multipage/input.html#password-state-(type=password)
+// "one line plain text edit control"
+bool HTMLInputElement::is_single_line() const
+{
+    // NOTE: For web compatibility reasons, we consider other types
+    //       in addition to Text, Search, and Password as single line inputs.
+    return type_state() == TypeAttributeState::Text
+        || type_state() == TypeAttributeState::Search
+        || type_state() == TypeAttributeState::Password
+        || type_state() == TypeAttributeState::Email
+        || type_state() == TypeAttributeState::Telephone
+        || type_state() == TypeAttributeState::Number;
+}
+
 bool HTMLInputElement::has_activation_behavior() const
 {
     return true;

+ 2 - 0
Userland/Libraries/LibWeb/HTML/HTMLInputElement.h

@@ -168,6 +168,8 @@ public:
     // https://html.spec.whatwg.org/multipage/forms.html#concept-submit-button
     virtual bool is_submit_button() const override;
 
+    bool is_single_line() const;
+
     virtual void reset_algorithm() override;
 
     virtual void form_associated_element_was_inserted() override;