Мне интересно, возможно ли достичь этого с помощью ползунка пользовательского интерфейса jQuery.
В основном я хочу установить ползунок для 6 возрастных групп:
16-21
22-30
31-40
41-50
51-60
60+
Пока что проблемы, которые я вижу, состоят в том, что разница в возрасте в полосах не постоянна.
Самый простой способ может быть, если я могу предоставить 6 предопределенных значений, а затем я могу изменить отображаемые значения, например:
Позволяет пользователю выбирать только 16, 22, 31, 41, 51 и 60, а затем я могу изменить то, что показано пользователю, добавив во вторую часть возрастного диапазона выражение if
, т. Е. Если 16 выбран, дисплей 16-21 и т. д.
На данный момент вот что у меня есть:
$(document).ready(function() {
$('#age').slider({
min: 16,
max: 60,
step: 1,
animate: true,
value: 16,
slide:function(event,ui)
{
// value shown to the user
$('#age-value').html(ui.value);
// hidden form input where value is stored
$('#customer-age').val(ui.value);
}
});
});
MARKUP
<tr>
<td>
<label class="wide" for="age">What age group do you come under?</label>
</td>
<td>
<div id="age"></div>
</td>
</tr>
<tr>
<td>
</td>
<td>
<div id="age-value">16-21</div>
</td>
</tr>
Любая помощь очень ценится.
UPDATE
Код теперь следующий:
$('#age').slider({
range: true,
min: 16,
max: 60,
step: 1,
animate: true,
values: [16, 21],
slide:function(event,ui)
{
$('#age-value').html(ui.value);
$('#customer-age').val(ui.value);
$("#age-value").html('Age Group: ' + ui.values[0] + ' - ' + ui.values[1]);
}
});
$("#age-value").html('Age Group: ' + $("#age").slider("values", 0) + ' - ' + $("#age").slider("values", 1));
Единственное, что сейчас происходит, - это когда любой из ползунков перемещается, это заставить его привязаться к ближайшему возрастному диапазону, но не может придумать, как этого добиться. Я знаю, как установить значения, но это только начальное решение, почему возрастной диапазон является самым близким, что вызывает у меня проблемы.
ОТВЕТ
Привет всем, это то, что я сделал, чтобы решить мою проблему.
По сути, я переборщил, подумав, что мне нужны две ручки-ползунка для двух значений каждой возрастной группы, когда все, что мне нужно было сделать так (возрастные полосы немного изменились):
$('#age').slider({
min: 16,
max: 50,
step: 1,
animate: true,
value: 16,
slide:function(event,ui)
{
if((ui.value>=16) && (ui.value<= 24))
{
agerange = '16 - 24';
}
else if((ui.value>=25)&& (ui.value<= 29))
{
agerange = '25 - 29';
}
else if((ui.value>=30) && (ui.value<=39))
{
agerange = '30 - 39';
}
else if((ui.value>=40) && (ui.value<= 49))
{
agerange = '40 - 49';
}
else if(ui.value==50)
{
agerange = '50 +';
}
$('#age-value').html(agerange);
$('#customer-age').val(agerange);
}
});