我需要在我的 Go 代码 (v.Hostname
) 中读取 Javascript 变量 (JS2GO
) 的值。我不知道该怎么做。
我已经阅读了一些关于 syscall/js
的内容,但我找不到任何内容。
这是Javascript代码:
$(document).on("keypress", "input", function(e){
if(e.which == 13){
var JS2GO = $(this).val();
}
});
这是我在 .gohtml
文件中的表单。
<form method="POST">
<input id="myInput" type="text" name="host">
<input type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;" tabindex="-1">
</form>
附言
我想到这个解决方案是因为我无法点击“提交”按钮(它是隐藏的),然后它不会将结果发送到我的 Go 代码。这意味着我无法通过以下代码读取 input
的值:v.Host = r.FormValue("host")
。如果我的方法不是最优的,请告诉我。
最佳答案
根据@G.aziz 的评论,我找到了提到的解决方案 here .就我而言,它以这种方式修复:
<form method="POST">
<input id="myInput" type="text" name="host" style="min-width: 220px;" placeholder="Hostname; e.g. crowe.org">
<input id="submitBtn" type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;" tabindex="-1">
</form>
和 Ajax 代码:
$(document).ready(function () {
$('#submitBtn').click(function () {
$.ajax({
url: '/',
type: 'POST',
dataType: 'HTML',
data : {
ajax_post_data: $('#myInput').val()
},
});
});
});
然后在我的 Go 文件中,我可以这样获取值
if r.Method == "POST" {
v.Host = r.FormValue("ajax_post_data")
}
关于javascript - 将 Javascript 变量的值发送到 Go 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57731559/