我使用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)
以来答案 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参数。