【发布时间】:2011-04-21 00:51:22
【问题描述】:
我正在运行州和省名称的自动完成功能。我想将状态缩写传递给下一个自动完成级联。我创建了一个隐藏输入,并且我想在选择州名称时将其设置为缩写,然后我将选择缩写以用于下一层自动完成以将城市查询限制为仅一个州。在前面的步骤中,我在 .ajax 数据选项中设置了国家单选按钮,因此您可以(通常)看到我想在这个州/城市层中执行的操作。我已经尝试了几件事,做了很多谷歌搜索和阅读 jQuery 书籍,但我需要一些帮助。 stateProvince 输入框自动完成并选择完整的州名。隐藏输入未使用缩写设置。警报为空。我不确定 ajax 成功或 ajax 选择功能。如何让缩写(不是名称)成为隐藏输入的值?然后如何在下一层的 .ajax 数据选项中选择它?这是相关代码。
选定的不带标记符号的 HTML:
输入类型="text" id="stateProvince" name="stateProvince" size="50" maxlength="50" 输入类型="hidden" id="hiddenState" name="hiddenState"
自动完成源 ajax;
$("#stateProvince").autocomplete
({
source: function( request, response )
{
//Pass the selected country to the php to limit the stateProvince selection to just that country
$.ajax(
{
url: "getStateProvince.php",
data: {
term: request.term,
country: $('input[name=country]:checked').val() //Pass the selected country to php
},
type: "POST",
dataType: "json",
success: function( data )
{
response( $.map( data, function( item )
{
return{
label: item.stateName,
value: item.name,
abbrev: item.stateAbbrev
}
}));
},
select: function( event,ui )
{
$(this).val(ui.item.value);
$("#hiddenState").$(this).val(ui.item.abbrev);
}
});
alert('|' + $("#hiddenState").val() + '|2nd'); //doesn't trigger here; shows no content when placed in the next tier Autocomplete
},
minLength: 2
});
从 php 返回的 JSON 示例:
[{"stateName":"Alabama","name":"Alabama","stateAbbrev":"AL"},{"stateName":"Alaska","name":"Alaska","stateAbbrev" :"AK"}]
【问题讨论】:
标签: jquery-ui jquery jquery-ui-autocomplete