HtmlButtonElement
sealed class HtmlButtonElement : HtmlFormControlElement, IHtmlButtonElement, IHtmlElement, IElement, INode, IEventTarget, IParentNode, IChildNode, INonDocumentTypeChildNode, IElementCssInlineStyle, IValidation
Represents an HTML button element.
using AngleSharp.Dom.Css;
using AngleSharp.Extensions;
using AngleSharp.Html;
namespace AngleSharp.Dom.Html
{
internal sealed class HtmlButtonElement : HtmlFormControlElement, IHtmlButtonElement, IHtmlElement, IElement, INode, IEventTarget, IParentNode, IChildNode, INonDocumentTypeChildNode, IElementCssInlineStyle, IValidation
{
public enum ButtonType : ushort
{
Submit,
Reset,
Button,
Menu
}
private string _value;
public string Type {
get {
return (GetAttribute(AttributeNames.Type) ?? InputTypeNames.Submit).ToLower();
}
set {
SetAttribute(AttributeNames.Type, value);
}
}
public string FormAction {
get {
if (base.Form == null)
return string.Empty;
return base.Form.Action;
}
set {
if (base.Form != null)
base.Form.Action = value;
}
}
public string FormEncType {
get {
if (base.Form == null)
return string.Empty;
return base.Form.Enctype;
}
set {
if (base.Form != null)
base.Form.Enctype = value;
}
}
public string FormMethod {
get {
if (base.Form == null)
return string.Empty;
return base.Form.Method;
}
set {
if (base.Form != null)
base.Form.Method = value;
}
}
public bool FormNoValidate {
get {
if (base.Form == null)
return false;
return base.Form.NoValidate;
}
set {
if (base.Form != null)
base.Form.NoValidate = value;
}
}
public string FormTarget {
get {
if (base.Form == null)
return string.Empty;
return base.Form.Target;
}
set {
if (base.Form != null)
base.Form.Target = value;
}
}
public string Value {
get {
return _value ?? string.Empty;
}
set {
_value = value;
}
}
internal bool IsVisited { get; set; }
internal bool IsActive { get; set; }
public HtmlButtonElement(Document owner)
: base(owner, Tags.Button, NodeFlags.None)
{
}
protected override bool CanBeValidated()
{
if (Type.ToEnum(ButtonType.Submit) == ButtonType.Submit)
return !this.HasDataListAncestor();
return false;
}
internal override void ConstructDataSet(FormDataSet dataSet, HtmlElement submitter)
{
if (this != submitter) {
ButtonType buttonType = Type.ToEnum(ButtonType.Submit);
if (buttonType == ButtonType.Submit || buttonType == ButtonType.Reset)
dataSet.Append(base.Name, Value, Type.ToString());
}
}
}
}