传递多个值1名称javascript

时间:2017-11-15 03:28:59

标签: javascript php html5 laravel-5

我正在处理我的论文,当我尝试将标记存储到某些上传的文件时,我发现了绊倒

我找到了一些javascript来帮助我在上传页面上创建标签。

$("#tags input").on({
    focusout : function() {
      var txt = this.value.replace(/[^a-z0-9\+\-\.\#]/ig,''); // allowed characters

      if(txt) {
        $("<span/>", {text:txt.toLowerCase(),value:txt.toLowerCase(), insertBefore:this});
        $("<input/>", {type:"hidden",value:txt.toLowerCase(),name:"Tags", insertBefore:this});
      }
      this.value = "";
    },
    keyup : function(ev) {
      // if: comma|enter (delimit more keyCodes with | pipe)
      if(/(188|13)/.test(ev.which)) $(this).focusout(); 
    }
  });
  $('#tags').on('click', 'span', function() {
    if(confirm("Remove "+ $(this).text() +"?")) $(this).remove(); 
  });

}); 

如果我想用这个js将多个标签传递给我的上传控制器怎么办?

我尝试使用隐藏的输入类型,但它一次只传递1个值, 而且,我无法删除输入值,所以如果我错了并删除标签,隐藏的输入也不会被删除。

请帮帮我,提前谢谢你!

1 个答案:

答案 0 :(得分:0)

如果我猜对了,你试图在同一个name=""

下向服务器发送更多标签

您可以通过将Tags更改为Tags[]来完成此操作,例如:

$("<input/>", {
    type:         "hidden",
    value:        txt.toLowerCase(),
    name:         "Tags[]",
    insertBefore: this
});

在服务器端,标签将是array