gpt4 book ai didi

jQuery .val() 不适用于 jQueryUI 自动完成

转载 作者:行者123 更新时间:2023-12-01 03:14:53 24 4
gpt4 key购买 nike

我在一个表单上有两个 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() 不起作用吗?

最佳答案

您需要使用函数而不是字符串作为自动完成的源:

$('#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: function (request, response) {
$.ajax({
url: '/Community/ajax_getCommunities.cfm?companyID=' + $('#companyID').val(),
data: request,
success: response,
error: function () {
response([]);
},
dataType: 'json'
});
}
});

由于 #companyId 的值正在发生变化,因此在初始化 #Community 自动完成功能时选择一次将不起作用。通过提供函数作为源,您可以在每次发出请求时重新查询 DOM 以获取公司 ID。

关于jQuery .val() 不适用于 jQueryUI 自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17708090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com