1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 17:44:58 +00:00

LibWeb: Implement HTMLButtonElement.type

This commit is contained in:
Luke Wilde 2022-03-01 21:06:29 +00:00 committed by Andreas Kling
parent 432d496ed6
commit 29f9947ff9
3 changed files with 49 additions and 0 deletions

View file

@ -17,4 +17,37 @@ HTMLButtonElement::~HTMLButtonElement()
{
}
String HTMLButtonElement::type() const
{
auto value = attribute(HTML::AttributeNames::type);
#define __ENUMERATE_HTML_BUTTON_TYPE_ATTRIBUTE(keyword, _) \
if (value.equals_ignoring_case(#keyword)) \
return #keyword;
ENUMERATE_HTML_BUTTON_TYPE_ATTRIBUTES
#undef __ENUMERATE_HTML_BUTTON_TYPE_ATTRIBUTE
// The missing value default and invalid value default are the Submit Button state.
return "submit";
}
HTMLButtonElement::TypeAttributeState HTMLButtonElement::type_state() const
{
auto value = attribute(HTML::AttributeNames::type);
#define __ENUMERATE_HTML_BUTTON_TYPE_ATTRIBUTE(keyword, state) \
if (value.equals_ignoring_case(#keyword)) \
return HTMLButtonElement::TypeAttributeState::state;
ENUMERATE_HTML_BUTTON_TYPE_ATTRIBUTES
#undef __ENUMERATE_HTML_BUTTON_TYPE_ATTRIBUTE
// The missing value default and invalid value default are the Submit Button state.
return HTMLButtonElement::TypeAttributeState::Submit;
}
void HTMLButtonElement::set_type(String const& type)
{
set_attribute(HTML::AttributeNames::type, type);
}
}