这是我当前的代码:

var areaid;

$( "#FindCentre" ).autocomplete({
    //Doesn't give the right value here.
    source: "databasescripts/findcentre.php?AreaID=" + areaid,
    minLength: 2,
    select: function( event, ui ) {
  },
 html: true,
});

$( "#FindArea" ).autocomplete({
    source: "databasescripts/findarea.php",
    minLength: 2,
    select: function( event, ui ) {
    areaid = ui.item.id;
    alert(areaid);
    //Alerts the correct value here.
  },
 html: true,
});


当用户键入FindArea时,它会警告正确的值,但是当他们随后键入FindCentre时,它将始终返回未定义状态。我已经尝试从FindCentre的FindArea中读取ID,但是我似乎也不能这样做。

有没有人有什么建议?

最佳答案

当您进行第一个自动完成呼叫时,它会使用静态值(即areaid = undefined)设定自动完成。如果要对动态值使用自动完成功能,则需要执行以下操作:

source: function(request, response) {
    $.ajax({
       url: "databasescripts/findcentre.php?AreaID=" + areaid //or + $("#FindArea").val()
    });
}

关于javascript - 使用自动完成功能时无法在javascript中设置变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26506482/

10-13 00:42