使用MagicSuggest将vars发送到服务器

时间:2013-03-30 18:47:52

标签: javascript jquery html magicsuggest

我使用this优秀的jquery插件处理文本框上的自动完成功能,我使用此脚本完成了所有工作:

        var ms1;
        $(document).ready(function() {
                ms1 = $('#ms1').magicSuggest({
                data: 'http://punctis.com/app_dev.php/ajax/autocompletefeed/1/city',
                sortOrder: 'name',
                minChars: 2,
                maxResults: false,
                allowFreeEntries: false,
                selectionPosition: 'right',
                groupBy: 'utenti',
                maxDropHeight: 200
            });
        });

这个Html:

<form name="email_form">
  <input id="test_normalValue" name="test_normalValue" type="text" class="input-large">
  <input id="ms1" name="ms1" type="text" class="input-large">
</form>

但是当我发布或获取表单时,没有任何值被发送,只有test_normalValue。有没有人遇到这个问题?

PS:根据this thread,此功能自1.1.2(即使用1.2.3)

以来

1 个答案:

答案 0 :(得分:2)

您需要为配置添加名称属性:

    var ms1;
    $(document).ready(function() {
            ms1 = $('#ms1').magicSuggest({
            data: 'http://punctis.com/app_dev.php/ajax/autocompletefeed/1/city',
            sortOrder: 'name',
            minChars: 2,
            maxResults: false,
            name: 'ms1',
            allowFreeEntries: false,
            selectionPosition: 'right',
            groupBy: 'utenti',
            maxDropHeight: 200
        });
    });

你应该检索$ _POST ['ms1']中的值,它实际上是一个城市id数组。

[编辑]如果您需要城市名称而不是城市ID,您可以在配置属性中指定valueField并将其设置为“name”,如下所示:

    var ms1;
    $(document).ready(function() {
            ms1 = $('#ms1').magicSuggest({
            data: 'http://punctis.com/app_dev.php/ajax/autocompletefeed/1/city',
            sortOrder: 'name',
            valueField: 'name',
            minChars: 2,
            maxResults: false,
            name: 'ms1',
            allowFreeEntries: false,
            selectionPosition: 'right',
            groupBy: 'utenti',
            maxDropHeight: 200
        });
    });

这样组件将使用名称作为ID而不是ID本身。

如果由于某种原因需要ID和名称,可以使用beforeload事件设置其他自定义POST参数。