我正在尝试使用Jquery UI创建自动完成功能,但在不知道它为什么不起作用之前我遇到了问题。现在我已将问题过滤掉并将其转移到一个专注区域。
情况
1。)如果数据是本地数据,则自动完成。
2。)自动完成不起作用,因为JSON数据的格式不完全相同。
3.)不确定如何使JSON数据以与本地数据相同的格式进行回显。
在本地运行的Javascript:
<script type="text/javascript">
$(function() {
$( "#zip" ).autocomplete({
source: [ {label:"705",value:"AIBONITO",state:"PR"},{label:"610",value:"ANASCO",state:"PR"},{label:"611",value:"ANGELES",state:"PR"},{label:"612",value:"ARECIBO",state:"PR"},{label:"601",value:"ADJUNTAS",state:"PR"}],
minLength: 1,
select: function( event, ui ) {
event.preventDefault();
$('#zip').val(ui.item.label);
this.value = ui.item.label;
$('#city').val(ui.item.value);
$('#state').val(ui.item.state);
}
});
});
</script>
数据必须采用以下格式:
[ {label:"705",value:"AIBONITO",state:"PR"},{label:"610",value:"ANASCO",state:"PR"},{label:"611",value:"ANGELES",state:"PR"},{label:"612",value:"ARECIBO",state:"PR"},{label:"601",value:"ADJUNTAS",state:"PR"}]
远程Javascript:
<script type="text/javascript">
$(function() {
$( "#zip" ).autocomplete({
source: 'autozip.php',
minLength: 1,
select: function( event, ui ) {
event.preventDefault();
$('#zip').val(ui.item.label);
this.value = ui.item.label;
$('#city').val(ui.item.value);
$('#state').val(ui.item.state);
}
});
});
</script>
并且JSON将以这样的双引号进入,并且它不会起作用:
[ {"label":"705","value":"AIBONITO","state":"PR"},{"label":"610","value":"ANASCO",state:"PR"},{"label":"7885","value":"WHARTON","state":"NJ"},{"label":"7981","value":"WHIPPANY","state":"NJ"},]
试图找出如何删除标签,值和状态周围的双引号。 谢谢你的时间!
答案 0 :(得分:0)
<script type="text/javascript">
$(function() {
$( "#zip" ).autocomplete({
source: function (req, res) {
$.get('autozip.php?q=' + req.term).then(function (data) {
res(data);
});
},
minLength: 1,
select: function( event, ui ) {
event.preventDefault();
$('#zip').val(ui.item.label);
this.value = ui.item.label;
$('#city').val(ui.item.value);
$('#state').val(ui.item.state);
}
});
});
</script>