【发布时间】:2013-06-27 05:46:18
【问题描述】:
我有一个用于 jQuery Mobile 的范围滑块。我想将自动完成的结果和两个滑块值结合起来,但我似乎只从滑块中获取预定义的 HTML 值,而不是我当前从滑动它中选择的值。
这是 JS:
$(function() {
function log(message) {
$("<div/>").text(message).prependTo("#log");
$("#log").attr("scrollTop", 0);
}
$.ajax({
url: "drycker.xml",
dataType: "xml",
success: function(xmlResponse) {
var data = $("artikel", xmlResponse).map(function() {
return {
value: $("Namn", this).text(),
id: $("Artikelid", this).text(),
price: $("Prisinklmoms", this).text(),
interval: $("#range-1a").val()
};
}).get();
$("#birds").autocomplete({
source: data,
minLength: 0,
select: function(event, ui) {
log(ui.item ?
"Vald produkt: " + ui.item.value + ", artikel-ID: " + ui.item.id + ", pris: " + ui.item.price + ", prisintervall vald:" + ui.item.interval:
"Ingen vald produkt, sökningen var " + this.value);
}
});
}
});
});
以及所需的 HTML:
<div data-role="rangeslider">
<label for="range-1a">Prisintervall:</label>
<input name="range-1a" id="range-1a" min="0" max="500" value="20" type="range">
<label for="range-1b">Prisintervall:</label>
<input name="range-1b" id="range-1b" min="0" max="500" value="200" type="range">
</div>
那么问题来了
interval: $("#range-1a").val() 只给我值 20 因为这是 #range-1a 从一开始就设置的值。我永远不会得到新的价值。有任何想法吗?
【问题讨论】:
-
你能在 jsFiddle 上复制这个吗?
-
当然:jsfiddle.net/erikblomqvist/aVMtQ 不过不知道如何正确包含用于 Ajax 自动完成的 XML 文件。
标签: javascript jquery html input range