gpt4 book ai didi

jquery - golang javascript ui问题

转载 作者:IT王子 更新时间:2023-10-29 02:11:54 25 4
gpt4 key购买 nike

以下 html 独立运行

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type="text/javascript" src="./jquery-1.7.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

$('.del').live('click',function(){
$(this).parent().parent().remove();
});

$('.add').live('click',function(){
$(this).val('Delete');
$(this).attr('class','del');
var appendTxt = "<tr><td><input type='text' name='name[]' /></td> <td><input type='text' name='value[]' /></td> <td><input type='checkbox' name='regex[]' /></td><td><input type='button' class='add' value='Add More' /></td></tr>";
$("tr:last").after(appendTxt);
});
});
</script>
<style>
table {
table-layout: fixed;
width:1200px;
}
input{
width:285px;
}
</style>
</head>

<body>
<form method="post" action="/silencealert">
<table id="options-table">
<tr>
<td>Name</td>
<td>Value</td>
<td>Regex</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><input type="text" name="name[]" /></td>
<td><input type="text" name="value[]" /></td>
<td><input type="checkbox" name="regex[]" /></td>
<td><input type="button" class='del' value='Delete' /></td>
</tr>
<tr>
<td><input type="text" name="name[]" /></td>
<td><input type="text" name="value[]" /></td>
<td><input type="checkbox" name="regex[]" /></td>
<td><input type="button" class="add" value="Add More" /></td>
</tr>
</table>
<br>
<label for="number"> Expires(Days[1-30]): </label>
<input type="number" min="1" max="30" value="" name="days">
<br><br>
<button type="submit">SilenceAlert</button>
</form>
<hr>
<small>User: %s</small>
</body>

使用上述文件,当我单击“添加更多”时,会添加一个新的表格行,当我单击“删除”时,会删除一个表格行。这是预期的行为。

我在 golang 项目中使用上面的 html(文件 - main.go)

package main

import (
"fmt"
"github.com/gorilla/mux"
"net/http"
)

const manage_alertsPage = `
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type="text/javascript" src="./jquery-1.7.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

$('.del').live('click',function(){
$(this).parent().parent().remove();
});

$('.add').live('click',function(){
$(this).val('Delete');
$(this).attr('class','del');
var appendTxt = "<tr><td><input type='text' name='name[]' /></td> <td><input type='text' name='value[]' /></td> <td><input type='checkbox' name='regex[]' /></td><td><input type='button' class='add' value='Add More' /></td></tr>";
$("tr:last").after(appendTxt);
});
});
</script>
<style>
table {
table-layout: fixed;
width:1200px;
}
input{
width:285px;
}
</style>
</head>

<body>
<form method="post" action="/silencealert">
<table id="options-table">
<tr>
<td>Name</td>
<td>Value</td>
<td>Regex</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><input type="text" name="name[]" /></td>
<td><input type="text" name="value[]" /></td>
<td><input type="checkbox" name="regex[]" /></td>
<td><input type="button" class='del' value='Delete' /></td>
</tr>
<tr>
<td><input type="text" name="name[]" /></td>
<td><input type="text" name="value[]" /></td>
<td><input type="checkbox" name="regex[]" /></td>
<td><input type="button" class="add" value="Add More" /></td>
</tr>
</table>
<br>
<label for="number"> Expires(Days[1-30]): </label>
<input type="number" min="1" max="30" value="" name="days">
<br><br>
<button type="submit">SilenceAlert</button>
</form>
<hr>
</body>
</html>
`

func manage_alertsPageHandler(response http.ResponseWriter, request *http.Request) {
fmt.Fprintf(response, manage_alertsPage)
}

func silencealertPageHandler(response http.ResponseWriter, request *http.Request) {

err := request.ParseForm()
if err != nil {
// Handle error here via logging and then return
fmt.Fprintf(response, "There was an error processing form: " + err.Error())
return
}
fmt.Printf("%+v\n", request.Form)

fmt.Fprintf(response, manage_alertsPage)
}

// server main method

var router = mux.NewRouter()

func main() {

router.HandleFunc("/manage_alerts", manage_alertsPageHandler)
router.HandleFunc("/silencealert", silencealertPageHandler)

http.Handle("/", router)
http.ListenAndServe(":8000", nil)
}

go项目的文件夹结构是

src/web
- main.go
- jquery-1.7.min.js

当我运行 go 项目时:

go run main.go

浏览到

localhost:8000/manage_alerts

点击添加或删除按钮,没有任何反应

需要一些帮助来弄清楚为什么 javascript 代码在 golang 代码之外执行得很好时却没有在这里执行。

最佳答案

当您直接在浏览器中打开 HTML 文件时,浏览器会在您的文件系统中查找 jquery 文件。当您通过导航到 localhost:8000/... 查看页面时,浏览器将在 localhost:8000/... 查找 jquery 文件。


您的 Go 应用程序只能处理对您注册的那两条路径的请求。它呈现的 html 页面将向 localhost:8000/jquery-1.7.min.js 发出请求以下载 jquery 文件,但您没有注册处理程序来处理此类请求...

也就是说,你错过了这样的东西:

router.HandleFunc("/jquery-1.7.min.js", serveJQuery)

在现实世界中,尽管您可能希望提供的不仅仅是一个文件,所以请查看 static files 上的 gorilla/mux 自述文件以获得更完整的解决方案。

关于jquery - golang javascript ui问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44032886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com