我在一个表单上有两个 jQueryUI 自动完成功能。一个以另一个为食。我的目标是让第一个字段自动完成并将 ID 填充到(打算成为)隐藏字段。第二个自动完成对远程页面进行 Ajax 调用,将第一个自动完成的 ID 传递给它。
这主要是工作。第一个自动完成工作正常,它用适当的值填充 companyID 字段。
我的问题是第二个自动完成总是将值 0 传递给 Ajax 请求的页面。就好像在第二个自动完成中调用源返回的 .val() 没有正确读取 companyID 字段的值。
更让人抓狂的是,当社区字段发生变化时,我会调用 alert(),它会报告正确、准确的 companyID! 啊!
我的 jQuery:
<script>
$(document).ready(function() {
var Companies = [
{ label: 'America First Properties', value: '6' },
{ label: 'Western National Group', value: '7' },
{ label: 'Greystar Property Management', value: '8' },
]
$('#Company').autocomplete({
autoFocus: true,
delay: 0,
minLength: 2,
source: Companies,
select: function(event,ui) {
$('#companyID').val(ui.item.value);
$('#Company').val(ui.item.label);
$('#Community').val('');
return false;
},
change: function(event,ui) {
}
});
$('#Community').autocomplete({
autoFocus: true,
delay: 200,
minLength: 2,
select: function(event,ui) {
$('#communityID').val(ui.item.value);
$('#Community').val(ui.item.label);
return false;
},
change: function(event,ui) {
alert("The value of the company ID field is: " + $('#companyID').val());
},
source: '/Community/ajax_getCommunities.cfm?companyID=' + $('#companyID').val()
});
});
</script>
还有我的 HTML:
<form name="addCommunityform" id="addCommunityform" action="act_addCommunity.cfm" method="post">
<fieldset>
<label>Intended to be Hidden Fields:</label>
<label>companyID:</label>
<input type="text" name="companyID" id="companyID" value="0">
<label>communityID:</label>
<input type="text" name="communityID" id="communityID" value="0">
</fieldset>
<fieldset>
<label for="Company">Property Management Company:</label>
<input type="text" name="Company" id="Company" value="">
</fieldset>
<fieldset>
<label for="Community">Community Name:</label>
<input type="text" name="Community" id="Community" value="">
</fieldset>
</form>
任何人都知道为什么这个 .val() 不起作用?