Ejemplo n.º 1
0
        public static FormValue FromSelect(ElementWrapper select, FormValue formValue)
        {
            var options = select.FindAll("option");
            var texts   = new List <string>();
            var values  = new List <string>();

            foreach (var option in options)
            {
                var text = option.TextContent;

                var value = option.HasAttribute("value")
                    ? option.Attribute("value")
                    : text;

                texts.Add(text);
                values.Add(value);

                if (option.HasAttribute("selected"))
                {
                    formValue.SetValue(value);
                }
            }

            formValue.SetConfinedValues(values, texts);

            return(formValue);
        }
Ejemplo n.º 2
0
        public static FormValue FromMultipleElements(string name, IList <ElementWrapper> elements)
        {
            var enabledElements = elements
                                  .Where(e => !e.HasAttribute("disabled"))
                                  .ToList();

            if (enabledElements.Count == 0)
            {
                return(null);
            }

            if (enabledElements.Count == 1)
            {
                return(FromElement(enabledElements.Single()));
            }

            var checkedValues = enabledElements.Where(e => e.HasAttribute("checked")).ToList();

            var formValue = new FormValue(name)
                            .SetConfinedValues(enabledElements.Select(e => e.Attribute("value")).ToList());

            if (checkedValues.Count > 0)
            {
                formValue.SetValue(string.Join(",", checkedValues.Select(e => e.Attribute("value"))));
            }

            return(formValue);
        }
Ejemplo n.º 3
0
        public static FormValue FromTextArea(ElementWrapper textArea, FormValue formValue)
        {
            formValue
            .SetValue(textArea.TextContent)
            .SetReadonly(textArea.HasAttribute("readonly"));

            return(formValue);
        }
Ejemplo n.º 4
0
        public static FormValue FromInput(ElementWrapper input, FormValue formValue)
        {
            var type = input.HasAttribute("type") ? input.Attribute("type").ToLower() : "text";

            formValue
            .SetValue(input.HasAttribute("value") ? input.Attribute("value") : null)
            .SetReadonly(input.HasAttribute("readonly"));

            if (type == "checkbox" || type == "radio")
            {
                if (string.IsNullOrEmpty(formValue.Value))
                {
                    formValue.SetValue("on");
                }

                if (!input.HasAttribute("checked"))
                {
                    formValue.SetSend(false);
                }
            }

            return(formValue);
        }