Go语言 无法获取文本区域值

jdgnovmf  于 2023-04-27  发布在  Go
关注(0)|答案(2)|浏览(150)

我试图用Go从HTML表单中获取textarea值,但它总是返回为blank/null。
HTML表单:

<form method="POST" action="/tickets/" name="ticketForm"> 
 <textarea rows="3" cols="50" class="form-control" name="ticketDescription" id="ticketDescription" form="ticketForm" required> </textarea>
   </form>

Golang方法捕获表单数据:

inputDescription := r.PostFormValue("ticketDescription")

例如,如果我选择' input=“text”',它会给我一个值。它只是来自带有blank/null的textarea。我使用了“fmt.Println(inputDescription)”来查看Go是否在检索值,它也会作为一个空白值。

3qpi33ja

3qpi33ja1#

<textarea>form属性必须是<form>的**id**属性,而不是name。此外,如果<textarea><form>内部,则不需要form
由于在您的示例中,<form>没有id属性,并且您为<textarea>提供了form,因此在提交表单时不会发送其值。
所以这样做:

<form method="POST" action="/tickets/" name="ticketForm"> 
  <textarea name="ticketDescription" id="ticketDescription" required> </textarea>
</form>

或者:

<form method="POST" action="/tickets/" id="ticketForm"> 
</form>

<textarea name="ticketDescription" id="ticketDescription"
    form="ticketForm" required> </textarea>

另外,不要忘记在处理程序中,必须先调用Request.ParseForm(),然后才能访问表单值(Request.Form),或者使用Request.FormValue()Request.PostFormValue()(如果需要,将调用Request.Parseform())。

irlmq6kh

irlmq6kh2#

对于那些@icza回答不起作用的人,你可能错过了required关键字。在我的情况下,只有这个关键字起了作用。

相关问题