1

我有一个场景
Ajax 正在正确处理数据,然后可用于 jquery 的自动建议插件,该插件可以正确选择并显示页面上的选定数据。我唯一需要让用户一一选择的所有值都放入隐藏字段中,以便我可以提交。

在头脑中:

$('#mycustom').magicSuggest({
data: 'http://dev.ejuicysolutions.com/demo/umer/fb2/data.json',
sortOrder: 'name',
minChars: 2,
maxResults: false,
selectionPosition: 'right',
maxDropHeight: 120,
expandOnFocus: false,
noSuggestionText: 'No Team Member found'
});
});


在身体->形式:

<form method="post" action="">
<h3>Custom</h3>
<input id="mycustom" style="width:400px;" type="text"/>
<input type="hidden" name="values" value="">
</form>



可以在以下位置查看示例:http ://dev.ejuicysolutions.com/demo/umer/fb2/,可以在以下位置查看 文档: http : //nicolasbize.github.com/magicsuggest/ 在文档选项卡中有“ ”。 等待你的答复。


getValue() : array[int / string]

4

2 回答 2

1

您可以使用getSelectedItems()插件提供的公共功能。

var objMagicSuggest = $('#mycustom').magicSuggest({
            data: 'http://dev.ejuicysolutions.com/demo/umer/fb2/data.json',
            sortOrder: 'name',
            minChars: 2,
            maxResults: false,
            selectionPosition: 'right',
            maxDropHeight: 120,
    expandOnFocus: false,
    noSuggestionText: 'No Team Member found'

        });
var selectedElements = objMagicSuggest.getSelectedItems();

您将获得选定元素的数组。

于 2013-03-26T10:21:58.273 回答
1

所以有两件事:

  • 该插件已准备好表单,这意味着如果包含在表单中,选定的值将自动与其他表单项一起提交。您可以使用“名称”属性为其定义名称(查看文档)。然后,您将使用 $_POST['given-name'] 来检索序列化的值,假设您在后端使用 PHP。

因此,在您的情况下,由于您没有指定 valueField,因此 $_POST['given-name'] 将包含一个序列化的 id 数组。

[编辑]:这是一个例子:

    $(document).ready(function() {
        $('#mycustom').magicSuggest({
            data: 'http://dev.ejuicysolutions.com/demo/umer/fb2/data.json',
            sortOrder: 'name',
            minChars: 2,
            maxResults: false,
            selectionPosition: 'right',
            maxDropHeight: 120,
            expandOnFocus: false,
            noSuggestionText: 'No Team Member found',
            name: 'teammembers' // this is what you need to add
        });
    });

执行选择(例如圣何塞和圣安东尼奥),然后添加提交按钮。

然后在您的服务器端:

$teammembers = $_POST['teammembers']; // $teammembers = '[20,17]'
  • 如果您想在发送表单进行预处理或其他任何操作之前自己检索值,您有 2 种方法:getValue() 将获取所选 id 的数组和 getSelectedItems() 将获取所选 json 对象的数组对应到您的数据。

根据您的需要,您可以检索其中任何一个,然后将它们与您的请求一起发送。

这是一个使用 selectionchange 事件显示所选名称的 jsfiddle:

http://jsfiddle.net/KFMtQ/1/

干杯!

于 2013-03-26T10:48:39.470 回答