【发布时间】:2012-07-16 22:43:58
【问题描述】:
想象一个包含以下数据的 json 文件:
[
{
color: "red",
value: "#f00"
},
{
color: "green",
value: "#0f0"
},
{
color: "blue",
value: "#00f"
},
{
color: "cyan",
value: "#0ff"
}
]
使用 jQuery 的自动完成方法,我希望它能够显示 color 作为在输入中选择和插入 value 的选项。
<input type="text" name="selector" id="selector" />
<input type="text" name="color" id="color" />
<input type="text" name="value" id="value" />
以上无需介绍。用于搜索颜色的选择器,input.color 带有 color 值,input.value 带有 value 值。
编辑: 我有这个 JSON 数据:
[{
"label": "Sec\u00e7\u00e3o 1",
"value": "1"
}, {
"label": "Sec\u00e7\u00e3o 2",
"value": "2"
}, {
"label": "Sec\u00e7\u00e3o 3",
"value": "3"
}, {
"label": "Sec\u00e7\u00e3o 4",
"value": "4"
}]
还有这个 HTML:
<input type="text" id="name" />
<input type="text" id="value" />
还有这个 jQuery:
$(document).ready(function(){
$("#name").autocomplete({
source: "json.php",
select: function (event, ui) {
$("#name").val(ui.label);
$("#value").val(ui.value);
}
});
});
我按照 Andrew 的回答提示我选择数据,但如果我提醒 ui.label 和 ui.value 变量,它会显示“未定义”。我错过了什么?
编辑2: 假设我有这个 HTML:
<input type="text" class="name" />
<input type="text" class="value" />
<input type="text" class="name" />
<input type="text" class="value" />
是否可以使用相同的.autocomplete() 方法处理多个选择器?比如,使用input.name选择我想要的标签,然后只更新它旁边的input.value?
[input.name] [input.value]
^ 我选择 ^ 更新
旁边的标签 值
[input.name] [input.value]
^ 这保持不变^
【问题讨论】:
-
您使用的是远程还是本地数据源?
-
这将是一个 php 文件,从数据库中获取值并将它们编码为 JSON 格式...
-
我没有尝试太多,因为我仍在尝试找出使用 jQuery 自动完成功能的正确方法...
标签: jquery ajax json jquery-ui jquery-ui-autocomplete