为了账号安全,请及时绑定邮箱和手机立即绑定

如何在golang中获取<ul>的表单值?

如何在golang中获取<ul>的表单值?

Go
天涯尽头无女友 2021-12-27 17:51:39
在我的用例中,我使用 tag tag-it从用户那里获取标签。我正在获取以 html<ul>形式输入的标签。我在服务器端使用 golang。html:   <form class="comment-form" action="/add/" method="POST" enctype="multipart/form-data">    <div class="form-input">      <label for="tags_label">Tags</label>      <ul id="tags">        <script type="text/javascript">          $("#myTags").tagit();          var tagsArray = ["C", "C++", "Go", "Ruby"];          $("#tags").tagit({              itemName: "teamId",              fieldName: "teamName",              availableTags: tagsArray,              allowSpaces:true,              caseSensitive:false,              removeConfirmation:true,              placeholderText:"Tags",              tagLimit: 5,              allowDuplicates: false,              singleFieldDelimiter: ',',              onlyAvailableTags: false          });        </script>      </ul>    </div>   </form>在服务器端,我试图获得类似于表单中其他字段的值,如下所示,tags            := r.FormValue("tags")log.Printf("Tags : ", tags)但它不起作用。有人可以帮我解决这个问题吗?编辑: 当我检查元素时,这就是我所看到的,<div class="form-input">    <label for="tags_label">Tags</label>    <ul id="tags" class="tagit ui-widget ui-widget-content ui-corner-all">        <script type="text/javascript">            $("#myTags").tagit();            var tagsArray = ["C", "C++", "Go", "Ruby"];            $("#tags").tagit({                    itemName: "teamId",                    fieldName: "teamName",                    availableTags: tagsArray,                    allowSpaces:true,                    caseSensitive:false,                    removeConfirmation:true,                    placeholderText:"Tags",                    tagLimit: 5,                    allowDuplicates: false,                    singleFieldDelimiter: ',',                    onlyAvailableTags: false            });
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

发现了问题:你希望一个字段,但你没有在指定它的选项的tag-it。如下使用它(为清楚起见添加了一些注释):


<script type="text/javascript">

    $("#myTags").tagit();

    var tagsArray = ["C", "C++", "Go", "Ruby"];

    $("#tags").tagit({

        fieldName: "teamName", // The name of the hidden input field

        availableTags: tagsArray,

        allowSpaces:true,

        caseSensitive:false,

        removeConfirmation:true,

        placeholderText:"Tags",

        tagLimit: 5,

        allowDuplicates: false,

        singleField: true, // Use a hidden input element with the fieldName name

        singleFieldDelimiter: ',', // Optional, default value is same.

        onlyAvailableTags: false

    });

</script>

在运行期间(和输入标签),<input>将使用隐藏的标签,以及您在tag-it选项中指定的标签。


<input type="hidden" style="display:none;" value="Go,another value,C" name="teamName">

在 Go 中,按如下方式处理(你错过了%sin Printf):


tags := r.FormValue("teamName")

log.Printf("Tags: %s", tags)

然后,您可以使用 分割标签strings.Split。


查看完整回答
反对 回复 2021-12-27
  • 1 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信