2014-03-05 58 views
0

在Jquerymobile範圍滑塊中,我可以設置一個從0到100的值,它會顯示0到100.在我的情況下,我想設置範圍從0到100和100+。如果用戶推動結束,而不是顯示100的值,我該如何顯示它爲100+?Jquerymobile滑塊範圍+

回答

2

jQM rangeslider中的輸入爲type="range"。這種類型只接受數字,所以文本'100+'不能被設置爲輸入的值。

一個解決辦法可能是隻定位一個 '+' 旁邊100:

工作DEMO

在rangeslider標記,我添加了一個<span>一類的labelPlus:

<div data-role="rangeslider"> 
    <label for="range-1a">Rangeslider:</label> 
    <input type="range" name="range-1a" id="range-1a" min="0" max="100" value="40" /> 
    <label for="range-1b">Rangeslider:</label> 
    <input type="range" name="range-1b" id="range-1b" min="0" max="100" value="80" /> 
    <span class="labelPlus">+</span> 
</div> 

labelPlus class CSS最初隱藏了t他跨越但是絕對定位它在正確的位置:

.labelPlus{ 
    display: none; 
    position: absolute; 
    right: 0px; 
    font-size: 14px; 
    font-weight: bold; 
    text-align: right; 
    width: 48px; 
    line-height: 30px; 
    margin-right: 18px; 
    margin-top: 8px; 
} 

最後在JavaScript中,我們處理輸入的變化事件,並檢查是否我們在100。如果是的話,表明跨度:

$("#range-1b").on("change", function(){ 
    var val = $(this).val(); 
    if (parseInt(val) >= 100) { 
     $(".labelPlus").show();    
    } else { 
     $(".labelPlus").hide(); 
    } 
});  
+0

此方法有效。但是,它不是非常的JQueryMobile,而且它是一個棘手的方法。我實際上做了一些研究,發現JQM標準方法沒有解決方案。讓我知道是否有任何解決方案比從UI更改。謝謝! – user2699714

0

我已經創建了Fiddle

$(function() { 
    $("#slider").slider({ 
     range: true, 
     min: 0, 
     max: 110, 
     slide: function(event, ui) { 
      if(ui.value>100) 
      { 
       $("#ammount").text("100+") 
      } 
      else 
      { 
$("#ammount").text(ui.value); 
      } 
     } 
    }); 
}); 
+0

謝謝!我可以在JqueryMobile中使用示例嗎?說版本1.3.2。 – user2699714