我需要在Go代码(JS2GO
)中读取Javascript变量(v.Hostname
)的值。我不知道该怎么做。
我已经读过一些关于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>
P.S。
我想出了这个解决方案,因为我无法单击“提交”按钮(它是隐藏的),因此它不会将结果发送到我的Go代码中。这意味着我无法通过以下代码input
来读取v.Host = r.FormValue("host")
的值。如果我的方法不是最佳方法,请告诉我。
答案 0 :(得分:0)
基于@ 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")
}