38

这是我的代码片段:http: //jsfiddle.net/natatkinson/xbWEb/

Javascript:

$(document).ready(function () {
    $("#tags").select2({
        maximumSelectionSize: 3
    });

});

HTML:

<form name="form1" id="form1" action="" method="GET">
<fieldset>
    <legend>Shoe Info</legend>
    <dl>    <dt>Name:</dt>

        <dd>
            <input type="text" name="name" id="name" size="40" placeholder="Shoe name" required autofocus>
        </dd>
    </dl>   <dt>Tags:</dt>

    <dd>
        <select multiple="" name="tags" id="tags" style="width:100%;">
            <option value="0">Select Tags</option>
            <option value="2">racing flat</option>
            <option value="3">track spikes</option>
            <option value="1">trainer</option>
        </select>
    </dd>
    </dl>
</fieldset>
<p class="submit-buttons">
    <input type="submit" class="button1" name="submit" id="submit" value="Add Shoes" />
</p>

提交的只是 1 个值,而不是文档中说的逗号分隔列表。

4

2 回答 2

93

您必须将 [] 用于包含多个值的表单控件的名称。在底部正确使用:

<select multiple="" name="tags[]" id="tags" style="width:100%;">
于 2014-10-27T17:58:39.360 回答
3

我认为您不能直接从 select2 获取字符串数据,您应该添加一个隐藏输入,并将隐藏输入的值作为参数提交。

<input type="hidden" name="tags" id="tags"></input>
<select multiple="" style="width:100%;" onchange="changeSelect(event)">
  <option value="0">Select Tags</option>
  <option value="1">trainer</option>
</select>
function changeSelect(event){
  var select2Value = $(event.target).val();
  $("tags").val(select2Value);
}
于 2017-07-24T01:41:20.690 回答