Я следовал этому уроку, который превращает блок выбора в ползунок на гравитационных формах с помощью пользовательского интерфейса jquery, и это работает, однако ...
https://jsfiddle.net/hirejordansmith/6rapbyn2/
У меня есть сотни блоков выбора, и мне нужно, чтобы все они работали правильно, поскольку учебник предназначен только для одного поля выбора на странице.
Если у вас есть несколько, это, кажется, добавить все поля выбора во все ползунки, какие-нибудь идеи, ребята?
Это ссылка, над которой я работаю: https://www.claims.co.uk/test123#gf_1
Чтобы попасть в раздел слайдера, выберите мужской> голова> «Повреждение зубов» + «Глухота» + «Эпилепсия», а затем нажмите «Далее», чтобы увидеть ползунки.
Это мой код:
jQuery(document).ready(function($) {
function sliderTooltip( $select, index, $handle ) {
var index = Math.max( 0, index ),
curValue = $selectDesktop.find('option').eq(index).text(),
tooltip = '<div class="tooltip"><div class="tooltip-inner">' + curValue + '</div><div class="tooltip-arrow"></div></div>';
$handle.html(tooltip);
}
function sliderConditionalLogic( $select, index ) {
var index = Math.max( 0, index ),
formId = $select.parents( 'form' ).attr( 'id' ).split( '_' )[1],
$input = $( '#gform_next_button_' + formId + '_2' );
if( index == 0 ) {
$input.hide();
} else {
$input.show();
}
}
var $selectDesktop = $(".claims-calculator .gfield_select");
var $sliderDesktop = $("<div id='slider-desktop'></div>")
.insertAfter($selectDesktop).slider({
min: 1,
max: $selectDesktop.find('option').length,
range: "min",
value: $selectDesktop[0].selectedIndex + 1,
slide: function(event, ui) {
$selectDesktop[0].selectedIndex = ui.value - 1;
sliderTooltip( $selectDesktop, ui.value - 1, $( ui.handle ) );
sliderConditionalLogic( $selectDesktop, ui.value - 1 );
}
});
sliderTooltip( $selectDesktop, $selectDesktop[0].selectedIndex, $sliderDesktop.find('.ui-slider-handle' ) );
sliderConditionalLogic( $selectDesktop, $selectDesktop[0].selectedIndex );
});