Amid
Amid

Reputation: 621

How can I set the default value for an HTML <select> element in Golang?

I want use a default value for a specific item in a list. I tried the following code but I got an error of "unexpected "=" in operand " How can I handle this problem?

<select name="location_id">
    {{ range .LocationList}}
        <option value="{{ .Id }}" {{if .Name == .CurrentLocation}}selected{{end}}>{{ .Name }}</option>
    {{ end }} 
</select>

Upvotes: 2

Views: 1376

Answers (1)

Cosmic Ossifrage
Cosmic Ossifrage

Reputation: 5379

Equality is implemented using Go templates using the eq function, to which you need to pass the arguments to compare. Specifically, the if function takes a pipeline, to which in this case you pass a function and a series of arguments. (See the docs for actions and pipelines.)

The correct syntax to use is:

{{ if eq <arg1> <arg2> }} ... {{ end }}

so, for your example:

{{ if eq .Name .CurrentLocation }} selected="selected"{{ end }}

(note attribute minimization is forbidden if you're using XHTML, so use selected="selected", but for HTML, selected is permitted.)

Upvotes: 2

Related Questions