jquery
  • jquery-ui
  • asp.net-mvc-2
  • slider
  • 2010-05-25 48 views 1 likes 
    1

    我使用滑塊作爲屏幕的用戶輸入。基本上它是一個批量更新屏幕,其中有一個多行的表格,因此有多個滑塊。我創建了它,以便隱藏的值是在表單中發佈的內容。初始化jQuery的滑塊與數據庫中的隱藏輸入值

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

    我有更新工作得很好(隱藏輸入值移動滑塊改變,提交值是在DB更新),但是,我不能讓這該死的東西與隱藏輸入的值初始化(請注意下面的「value:」參數)。在這種情況下,我認爲$(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

    你在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'); 
    
         } 
        }); 
    
    }); 
    
    +0

    是的,我是jquery的新手,剛讀了一下$(this)。 :)感謝您的解決方案,我結束了張貼我自己不知道你已經發布。 – spaceagestereo 2010-05-25 15:07:52

    +0

    上述方法的優點在於,您不是兩次運行所有.percentageProvidedSlider div,而是隻運行一次。 – 2010-05-25 15:12:51

    +0

    非常真實,再次感謝! – spaceagestereo 2010-05-25 15:56:03

    1

    我想我想通了。經過上面的代碼我把以下內容:

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

    這似乎工作正常。

    相關問題