我将 JQuery 滑块用于宽度范围。这是我的 HTML:
<div id="divWidth">
Width:
<div>
<input type="text" class="sliderValue" data-index="0" value="10" id="txtWidthFt0"
runat="server" style="width: 20px" />'
<input type="text" class="sliderValue" data-index="0" value="10" id="txtWidthIn0"
runat="server" style="width: 20px" />" to
<input type="text" class="sliderValue" data-index="1" value="10" id="txtWidthFt1"
runat="server" style="width: 20px" />'
<input type="text" class="sliderValue" data-index="1" value="10" id="txtWidthIn1"
runat="server" style="width: 20px" />"
</div>
<br />
<div id="sliderWidth">
</div>
</div>
我能够让文本框的值随着滑块的移动而改变。我需要相反的帮助 - 随着文本框值的变化而改变滑块值。
这是我当前的 javascript,我从这篇文章中对其进行了调整:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<script type="text/javascript">
function getFeet(n) {
return Math.floor(n / 12);
}
function getInches(n) {
return (n % 12);
}
$(document).ready(function () {
$("#sliderWidth").slider({
min: 1,
max: 500,
range: true,
values: [1, 500],
slide: function (event, ui) {
for (var i = 0; i < ui.values.length; ++i) {
$("#txtWidthFt" + i).val(getFeet(ui.values[i]));
$("#txtWidthIn" + i).val(getInches(ui.values[i]));
}
}
});
// need help here:
$("#divWidth input").change(function () {
var $this = $(this);
$("#sliderWidth").slider("values", ?);
});
});
</script>
我知道我可以为每个文本框添加一个更改事件并这样做。我正在寻找一种方法来做到这一点,而无需为每个文本框/使用更少的代码。任何帮助表示赞赏。