我有一个绑定到 jquery UI 自动完成的输入字段。从自动完成的下拉列表中选择特定条目时,客户端会收到一些条目,然后将其设置为其他字段的值。它工作正常。但是当我在字段中写一些东西作为值并期望接收这些数据时,我没有得到它们。我不知道该怎么做。
我的第二个问题是,为了解决这个问题,我用 jquery change() 绑定了相同的输入字段。更改时,特定值会设置为其他一些字段,但会立即从字段中消失。我无法理解问题是什么。我的代码在这里。
$("#siteID1").autocomplete({
source: "sourceSearch.php?field=site",
minLength: 1,
focus: function(event, ui) {
event.preventDefault();
$(this).val(ui.item.label);
},
select: function( event, ui ) {
event.preventDefault();
$(this).val(ui.item.label);
},
change: function (event, ui) {
event.preventDefault();
if(ui.item!=null)
{
$("#site1Name").val(ui.item.value.btsName);
$("#site1Long").val(ui.item.value.longitude);
$("#site1Lat").val(ui.item.value.latitude);
$("#site1CId").val(ui.item.value.componentId);
}
else
{
$("#site1Name").val("");
$("#site1Long").val("");
$("#site1Lat").val("");
$("#site1CId").val("");
}
}
});
上面的代码是当我将自动完成与字段绑定时。以下代码是我用 change() 绑定字段时的代码。
$('#siteID1').change(function() {
$.ajax({
url: "sourceSearch.php?field=site&term="+$('#siteID1').val(),
dataType: 'json',
//async: false,
success: function(data){
if(data)
{
$("#site1Name").val(data[0].value.btsName);
$("#site1Long").val(data[0].value.longitude);
$("#site1Lat").val(data[0].value.latitude);
$("#site1CId").val(data[0].value.componentId);
}
else
{
$("#site1Name").val("");
$("#site1Long").val("");
$("#site1Lat").val("");
$("#site1CId").val("");
}
}
});
});
在这两种情况下,我都能准确地从服务器接收到 json 数据。但是在更改时,“btesName”、“longitude”等一旦被设置为值就会消失。谁能帮帮我吗??