html - 通过 ParseForm() 检索表单选项 ID

标签 html forms http go

我正在尝试从 HTML 表单下拉列表中获取选项值 ID。

假设我的 HTML 文件中有这些行:

<select name="film" id="films">
<option id="1">Godfather</option>
</select>

这在我的 Go 文件中:

func filmFunc(w http.ResponseWriter, r *http.Request) {
    r.ParseForm()
    film_raw := r.Form["film"]
    film := film_raw[0]
    ...
}

这将为我提供选项中的文本 ("Godfather"),但我需要获取选项 ID ("1") 并将其保存为多变的。我该怎么做?

最佳答案

HTML 不是这样的 <form> 作品。当您使用 <select> <form> , 您必须指定 name <select> 处的属性- 你做对了。你必须指定 value <option> 的属性标签,不是 id .您可以指定 id属性(例如,如果您想通过其 id 引用标签),但这不是提交表单时发送的内容。

提交表单时,"key"="value"将发送 <select> 对, 其中"key"将是 name 的值<select> 的属性, 和 "value"将是 value 的值<option> 的属性已选中。

您可以使用 Request.FormValue() 通过名称获取已提交表单字段的值,请注意,这也称为 Request.Parseform() 如有必要,您甚至可以省略该调用。

查看这个工作示例:

func formHandler(w http.ResponseWriter, r *http.Request) {
    if selectedFilm := r.FormValue("film"); selectedFilm != "" {
        log.Println("Selected film:", r.FormValue("film"))
    }

    w.Write([]byte(html))
}

func main() {
    http.HandleFunc("/", formHandler)
    log.Fatal(http.ListenAndServe(":8080", nil))
}

const html = `<html><body>
<form method="POST" action="/">
    <select name="film" id="films">
        <option value="1">The Godfather</option>
        <option value="2">The Godfather: Part II</option>
    </select>
    <input type="submit" value="Submit">
</form>
</body></html>`

当您选择 "The Godfather" 时并提交,控制台显示:

2015/12/05 21:18:42 Selected film: 1

当您选择 "The Godfather: Part II" 时并提交,控制台显示:

2015/12/05 21:18:45 Selected film: 2

关于html - 通过 ParseForm() 检索表单选项 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34108987/

相关文章:

javascript - 如何调用表单 ['myform' ]. 提交名称为 'submit' 的输入存在

python - 使用 Python 和 Flask 流式传输数据引发 RuntimeError : working outside of request context

javascript - 使用 AngularJS 和 Spring Boot 发布基本身份验证语义?

html - 创建下拉表单标题 Django/HTML/CSS

javascript - JQuery 汉堡包菜单函数

html - 将 asp Validator 的可见性设置为 True 不会影响任何更改

php - 如何缩小php页面html输出?

php 表单 Action php self

php - 上传大文件时 POST 数据消失

http - 在 nginx 中将所有 http 重定向到 https,除了一个文件