2

我使用这个很棒的 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>

但是当我 POST 或 GET 表单时,没有发送任何值,只是 test_normalValue。有没有人也遇到这个问题?

PS:根据这个线程,这个功能从 1.1.2 开始存在(我使用 1.2.3)

4

1 回答 1

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 并将其设置为“名称”,如下所示:

    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
        });
    });

That way the component will use the names as IDs instead of the ids themselves.

If you need both the IDs and the names for whatever reason, you can use the beforeload event to set additional custom POST parameters.

于 2013-03-30T22:41:58.230 回答