我正在尝试检测用户是否在golang托管的网页上输入内容,但每次用户单击该按钮并提交表单时,它只会重定向到另一个页面(我在localhost:8080上托管并重定向到本地主机:8080 /文本)。我很确定这是因为表单操作设置为“/ text”但如果我删除了golang handlefunc永远不会运行。以下是我到目前为止的情况:
package main
import (
"log"
"net/http"
"fmt"
)
func main()() {
//runs server
fs := http.FileServer(http.Dir("./"))
http.Handle("/", fs)
log.Println("Listening...")
http.ListenAndServe(":8080", nil)
//detects user input and calls function
http.HandleFunc("/text", textGetter)
}
func textGetter (w http.ResponseWriter, r *http.Request) () {
r.ParseForm()
text := r.PostFormValue("text")
fmt.Fprintf(w, "this: %s", text)
fmt.Print(" was written in the text box")
}
和这个html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello</title>
<link rel="stylesheet" href="./stylesheet.css">
</head>
<body>
<h1>Write something bellow</h1>
<form class="userText" action="/text" method="post">
<input type="text" name="textbox" id="textBox" value="" placeholder="type something here">
<input type="submit" value="text" name="button" id="button" onclick="thank(message.value)">
</form>
<script type="text/javascript" src="./script.js"></script>
</body>
</html>
有人可以告诉我出了什么问题吗?
答案 0 :(得分:0)
这是一个独立于Go或任何其他语言的前端任务。
您可以跟踪用户输入,将onkeypress
属性添加到感兴趣的字段中。你需要一些Ajax库。例如,您可以jQuery
。
尝试类似以下的代码:
<input ... onkeypress="input()">
<script>
function input(){
$.ajax(url, parameters)
}
</script>