javascript - 将 Javascript 变量的值发送到 Go 变量中

标签 javascript go

我需要在我的 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/

相关文章:

xml - golang xml解码

go - 在后台运行并收集数据的 channel

javascript - 如何检测 Edge 浏览器输入损坏错误是否已修补

javascript - 当填充发生变化时,如何让 Chrome 调整此 div 的大小?

go - 转换/vendor 到 Go 模块,找不到提供包错误的模块

go - 函数调用中的类型参数 panic

javascript - HTML5/JS 存储事件处理器

javascript - 目录检查在 node.js 中返回 false

javascript - 宽度未知的中心固定菜单

angularjs - $http.post() 方法实际上是发送一个 GET