I am a building a frontend that has an HTML form using “html/template” package, so in form element, I have action="/" attribute where I am doing a post request and saving the form data. My saving in DB is working perfectly.
I want to know how to show errors?
I am using validator/v10 package to do validation, I am able to get errors in JSON response but not understanding how to render that on the front end
I understand that I have to make a function ErrorsStub() and pass it in template.FuncMap{
“errors”: ErrorsStub,
}
and then check errors on frontend
How to achieve that?
edit
adding a code example
//form.gotmpl
<form action="/" method = "post">
<input class="{{if errors}}border-red-600{{end}}" {{with .Name}}id="{{.}}"{{end}} type="{{.Type}}" name="{{.Name}}" placeholder="{{.Placeholder}}" {{with .Value}}value="{{.}}"{{end}}> {{range errors}} <p class="text-red-500 pt-2 text-xs italic">{{.}}</p> {{end}}
<button class="bg-teal-400 hover:bg-teal-500 text-white font-bold py-2 px-4 rounded" type="submit"> Submit </button>
this is my form.html which would be parsed by
pageTpl := template.Must(template.New("").Funcs(template.FuncMap{
"errors": ErrorsStub,
}).ParseFiles("form.gotmpl")
and then pageTpl would be executed in get request at “/” endpoint by pageTpl.ExecuteTemplate
with data passed in the template
I have everything working (my endpoints are parsed and data is being saved in DB)
I just have to implement
func ErrorsStub() []string {
return []string{}
}
to get errors from the back end that I can display in my templates frontend