使用数据库中的隐藏输入值初始化jquery滑块

时间:2010-05-25 14:29:14

标签: jquery jquery-ui asp.net-mvc-2 slider

我正在使用滑块作为屏幕的用户输入。基本上它是一个批量更新屏幕,其中有一个包含多行的表,因此有多个滑块。我创建了它,以便隐藏的值是在表单中发布的内容。

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

我有更新工作正常(移动滑块更改隐藏的输入值,提交,值在db中更新),但是,我无法得到该死的东西用隐藏输入的值初始化(注意“值:“下面的参数”。在这种情况下,我认为$(this)实际上并不是$('percentageProvidedSlider'),而是页面本身。有人可以帮助我使用隐藏的输入字段初始化滑块值吗?我正在使用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 个答案:

答案 0 :(得分:2)

你在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 :(得分:1)

我想我明白了。在上面的代码之后,我提出以下内容:

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

这似乎工作正常。