【发布时间】:2014-06-11 21:58:16
【问题描述】:
我正在尝试将选择元素的值作为参数发送到 ajax 请求。但是,它总是会在页面加载时发送元素的初始值,而不是当前选择的值。
我尝试在选择框更改时通过重置变量来更新变量,但这对 ajax 请求没有任何影响。
<select id="id_location">
<option value="1">...</option>
<option value="2">...</option>
<option value="3">...</option>
</select>
<script>
var list = $("#id_location").val();
$(document).ready(function() {
$("#id_location").change(function(){
list = $("#id_location").val();
})
$('#id_part_number').autocomplete({
serviceUrl: '/lookup',
width: 500,
params: {location: list}, // <-------- This variable is not updating
onSelect: function (suggestion) {
var request = $.ajax({
url: "/lookup",
type: "GET",
data: {"query": suggestion.data,
},
dataType: "json"
});
request.done(function(msg) {
$("#id_number").val(msg.number);
$("#id_desc").val(msg.description);
$("#id_par").val(msg.par);
})
}
});
})
</script>
当谈到 javascript/jquery 时,我是一个完全的新手,并且无法通过谷歌搜索找到任何东西。任何解决此问题的见解将不胜感激。
编辑:上面的自动完成功能是外部库jquery-autocomplete 的一部分。它的目的是在每次更新它附加到的元素(在我的情况下是输入字段)时发送 ajax 请求。我想用请求中的参数发送#id_location 元素的当前值。现在我只能让它在页面加载时发送元素的原始值并且无法更新它。
【问题讨论】:
-
我根本不需要 $("#id_location").change(function())。这只是我尝试解决问题的一种方法,但没有成功。 $('#id_part_number').autocomplete 部分是必要的部分。
-
完全没有错误。我正在查看正在发送的请求,它通过就好了,自动完成功能按预期填充,除了位置参数在选择更改时不会更新为新值。
-
检查我的新答案,看看这是否有效。
标签: javascript jquery html django