【发布时间】:2013-04-22 23:53:12
【问题描述】:
使用 select2 jQuery 插件,我创建了一个标签框。因此我使用了以下html表单代码:
<form action="someAction" method="post">
<fieldset>
<select id="tags" multiple="" name="tags">
<option value="tag1">val1</option>
<option value="tag2">val2</option>
<option value="tag3">val3</option>
</select>
<button type="submit" class="btn">Submit</button>
</fieldset>
</form>
Select2 从中生成以下字段:
<input type="text" class="select2-input" autocomplete="off" id="s2id_autogen1" style="width: 10px;">
问题在于缺少name 属性。如果没有 name 属性,如何从 PHP 中的 $_POSTvariable 中获取输入字段的数据/文本?我该如何管理?
设置JS如下:
$(document).ready(function() {
$("#tags").select2({
placeholder: "Insert tag",
allowClear: true,
minimumInputLength: 2,
maximumSelectionSize: 1,
minimumWidth: 200
});
});
【问题讨论】:
-
Select2 创建视觉体验元素。您使用的所有内容都保持不变。这意味着实际工作应该发生在原始元素上(在您的情况下,它是带有 name = 标签的元素), Select2 创建的元素仅用于向您显示选定的选项,之后它将默默地修改目标元素。 TL;DR - 只需通过 $.serialize 序列化表单即可。
-
实际上它并没有改变目标元素(name=tags 这里)。我期待像
<option value="tag1" selected="selected">val1</option>这样的东西,但这并没有出现。我应该如何获得选定的? -
好的,我发现不必有
selected属性。它现在可以工作了。
标签: php jquery post tags jquery-select2