// Serialize converts the form fields into a url.Values type. // Returns two url.Value types. The first is the form field values, and the // second is the form button values. func serializeForm(sel *goquery.Selection) (url.Values, url.Values) { input := sel.Find("input,button,textarea") if input.Length() == 0 { return url.Values{}, url.Values{} } fields := make(url.Values) buttons := make(url.Values) input.Each(func(_ int, s *goquery.Selection) { name, ok := s.Attr("name") if ok { typ, ok := s.Attr("type") if ok || s.Is("textarea") { if typ == "submit" { val, ok := s.Attr("value") if ok { buttons.Add(name, val) } else { buttons.Add(name, "") } } else { val, ok := s.Attr("value") if !ok { val = "" } fields.Add(name, val) } } } }) return fields, buttons }