package example
import . "github.com/creamsensation/form"
type ExampleForm struct {
Form
Name Field[string]
Age Field[int]
}
func createExampleForm() (ExampleForm, error) {
form := New(
Add("name").With(Text(), Validate.Required()),
Add("age").With(Number[int](), Validate.Required()),
)
return Build[ExampleForm](form)
}
Creates new form builder, which accept field builders
New(fields...)
Set form action
formBuilder.Action(action)
Same as Add() function, only alternative
formBuilder.Add(name)
Get form field
formBuilder.Get(name)
Data limit (MBs)
formBuilder.Limit(limit)
Set form method
formBuilder.Method(method)
Set form name
formBuilder.Name(name)
Provide request to form, it uses native *http.Request
formBuilder.Request(request)
Creates new field builder
Add(config, validators...)
Use when form field value is required, it works with string, int, floats, bool and Multipart
Validate.Required()
--
Add("example").With(Text(), Validate.Required())
Use when form field value must have minimal value or minimal length, it works with string, int, floats
Validate.Min(1)
--
Add("text").With(Text(), Validate.Min(1))
Add("amount").With(Number[float64](), Validate.Min(1))
Use when form field value must have maximum value or maximum length, it works with string, int, floats
Validate.Max(10)
--
Add("text").With(Text(), Validate.Max(10))
Add("amount").With(Number[float64](), Validate.Max(10))
Use when form field value must have email pattern, it works with string
Validate.Email()
--
Add("email").With(Email("test@test.cz"), Validate.Email())
Creates form from form builder, you have to provide result type
Build[ExampleForm](formBuilder)
Convert form struct to any data model struct, you have to provide source and result type
ToStruct[ExampleForm, Model](&form)