инициализировать слайдер jquery со скрытым значением ввода из базы данных - PullRequest
1 голос
/ 25 мая 2010

Я использую ползунок в качестве пользовательского ввода для экрана. По сути, это экран массовых обновлений, где есть таблица с несколькими строками, то есть с несколькими ползунками. Я создал его так, что скрытое значение - это то, что публикуется в форме.

<td>
    <input class="percentageProvidedHidden" type="hidden" name='<%= "Values[" + i + "].Percentage" %>' value='<%=item.Percentage %>' />
            <div class="percentageProvidedSlider"></div>
</td>

У меня обновление работает нормально (ползунок перемещения изменяет скрытое значение ввода, отправка, значения обновляются в дБ), однако я не могу заставить эту чертову вещь инициализироваться значением скрытого ввода (обратите внимание на " значение: параметр ниже). В этом случае я думаю, что $ (this) на самом деле не $ ('процентProvidedSlider'), а сама страница. Может кто-нибудь помочь мне получить значение ползунка для инициализации со скрытым полем ввода? Я использую ASP .Net MVC 2, поэтому, если есть какие-либо методы, которые я должен попробовать, я также приветствую их.

$('.percentageProvidedSlider').slider(
    {
        min: 0,
        max: 100,
        step: 25,
        value: $(this).parents('tr').find('input.percentageProvidedHidden').val(),
        slide: function(e, ui) {
            var mypos = ui.value;
            $(this).find('.ui-slider-handle').text(ui.value);
        },
        change: function(event, ui) {
            var myVal = $(this).slider("option", "value");
            $(this).parents('tr').find('input.percentageProvidedHidden').val(myVal);

            var myDropDown = $(this).parents('tr').find('select.verified');

        }
    });

Ответы [ 2 ]

2 голосов
/ 25 мая 2010

Вы правы в this, не правы, но это скорее тот факт, что в то время, когда вы объявляете объект (если this был объектом-ползунком) this это объект, который не имеет был добавлен в DOM, поэтому нет родителей. Так что вам придется использовать что-то вроде:

$('.percentageProvidedSlider').each(function() {
 var $sld = $(this); // is the current div.percentageProvidedslider
  $sld.slider(
    {
        min: 0,
        max: 100,
        step: 25,
        value: $sld.parents('tr').find('input.percentageProvidedHidden').val(),
        slide: function(e, ui) {
            var mypos = ui.value;
            $(this).find('.ui-slider-handle').text(ui.value);
        },
        change: function(event, ui) {
            var myVal = $(this).slider("option", "value");
            $(this).parents('tr').find('input.percentageProvidedHidden').val(myVal);

            var myDropDown = $(this).parents('tr').find('select.verified');

        }
    });

});
1 голос
/ 25 мая 2010

Думаю, я понял это. После приведенного выше кода я поставил следующее:

 $('.percentageProvidedSlider').each(function() {
var myVal = $(this).parents('tr').find('input.percentageProvidedHidden').val();
$(this).slider("option", "value", myVal);
});

Кажется, это работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...