AngleSharp by Florian Rappl

<PackageReference Include="AngleSharp" Version="0.7.0" />

.NET API 997,888 bytes

 HTMLFormControlElement

Represents the base class for all HTML form control elements.
using AngleSharp.DOM.Collections; using AngleSharp.Html; namespace AngleSharp.DOM.Html { internal abstract class HTMLFormControlElement : HTMLElement, ILabelabelElement, IValidation { private readonly NodeList _labels; private readonly ValidityState _vstate; private string _error; public string Name { get { return GetAttribute(AttributeNames.Name); } set { SetAttribute(AttributeNames.Name, value); } } public IHtmlFormElement Form => GetAssignedForm(); public bool IsDisabled { get { return GetAttribute(AttributeNames.Disabled) != null; } set { SetAttribute(AttributeNames.Disabled, value ? string.Empty : null); } } public bool Autofocus { get { return GetAttribute(AttributeNames.AutoFocus) != null; } set { SetAttribute(AttributeNames.AutoFocus, value ? string.Empty : null); } } public bool SupportsLabels => true; public INodeList Labels => _labels; public string ValidationMessage { get { if (!_vstate.IsCustomError) return string.Empty; return _error; } } public bool WillValidate { get; set; } public IValidityState Validity => _vstate; internal HTMLFormControlElement(string name, NodeFlags flags = NodeFlags.None) : base(name, flags | NodeFlags.Special) { _vstate = new ValidityState(); _labels = new NodeList(); } public bool CheckValidity() { Check(_vstate); return _vstate.IsValid; } public void SetCustomValidity(string error) { _vstate.IsCustomError = !string.IsNullOrEmpty(error); _error = error; } internal virtual void ConstructDataSet(FormDataSet dataSet, HTMLElement submitter) { } internal virtual void Reset() { } protected virtual void Check(IValidityState state) { } } }