別の要素の値が変更された場合、またはその逆の場合はスライダーの値を設定する必要がありますが、別のフォーム要素の値をスライダーの値に設定するのが困難です。
以下の関数は、Select要素の値を変更するとスライダーの値を変更しますが、逆に機能させることはできません。私はここにそれのフィドルを投稿しました:http://jsfiddle.net/chayacooper/v3gUg/28/
jQuery Slider Plugin、jquery-1.8.2およびjquery-ui-1.9.1を使用しています。
JS
$(document).ready(function () {
var select = $("#SliderSelect");
jQuery("#Slider").slider({
from: 1,
to: 5,
scale: ['Dislike', '', '', '', 'Love'],
limits: false,
step: 1,
dimension: '',
skin: "classic",
change: function (evt) {
$("#SliderSelect")[0].value = $(evt.target).slider("value");
}
});
$("#SliderSelect").change(function () {
jQuery("#Slider").slider("value", this.selectedIndex + 1);
});
});
また、コードをこのステートメントに置き換え、select要素の代わりにテキストボックスを使用してみましたが、同じ結果になりました
$('#text_value').val( $(evt.target).slider("value") );
HTML
<div class="layout-slider">
<div id="Slider" type="slider" name="area" value="3"></div>
</div>
<select name="SliderSelect" id="SliderSelect">
<option>1</option>
<option>2</option>
<option selected=selected>3</option>
<option>4</option>
<option>5</option>
</select>