【发布时间】:2016-10-28 13:49:15
【问题描述】:
我正在修改 jQuery 自动完成功能,以便将第二个术语传递给搜索功能以缩小搜索范围。我遇到的问题是能够将城市连接到 URL
$(function() {
var city = $('#city').val(); //get the city value from text field
var source = 'search.php?city='; //URL where the search takes place
//autocomplete
$(".auto").autocomplete({
source: source+city , //concatenation not working.
minLength: 1
});
});
我尝试了不同的方法将城市名称连接到 url 上
$(function() {
//var city = //$('#city').val();
var source = 'search.php?city=';
//autocomplete
$(".auto").autocomplete({
source: source+$('#city').val(),
minLength: 1
});
});
我知道
var city = 'Austin'
有效。我不确定
$('#city').val()
因为如果我可以对其进行硬编码,那么对于从文本字段中获取变量的函数来说,它应该同样有效。对吧?
文本字段是这样的
<form action='' method='post'>
<p><label>Pharmacy Names : </label><input type='text' name='names' value='' class='auto'></p>
<p><label>City : </label><input type='text' name='city' id='city' value='' placeholder='Enter City First'></p>
</form>
即使Add form value to end of url - Jquery这个帖子也同意我的想法
这篇帖子Get the value in an input text box 表明我正在使用正确的 jquery 调用来获取文本框值。看起来它应该可以工作,但事实并非如此。
【问题讨论】:
-
我认为您的代码中的问题是您在还没有城市时设置了 url。然后 autocomplete 没有在进一步的 ajax 请求中再次检查它。
-
我从第一个警报中就知道了。它是空的,因为函数在加载时运行,文本字段为空。因此在执行自动搜索期间它保持为空。所以,城市的值需要在输入文字后设置。
-
您只是检查
city的值并将其传递给 DOM Ready 时的autocomplete。那时,该值为空。您需要使用一个函数作为您的source选项,并且该函数需要获取并使用city的值并使用它来获取数据。 -
我正在考虑使用 onblur 作为函数来设置城市变量。
标签: javascript jquery