jQuery 滑块显示具有特定数据 JQM 的多个输入

jQuery slider display multiple inputs with specific data JQM

我正在尝试构建一个滑块(非范围)。我希望滑块在 3-4 个输入元素(可能是一个 select 框)中显示数据。在表单小部件方面,我有点新手。使用 jQuery v2.1.0 和 JQM v1.4.5,添加 jQuery-UI 不是问题,只要它响应迅速并且适用于移动设备即可。

<div id="slider">
  <div id="slider"></div>
</div>
<input id="amount" readonly type="text">
<div class="data-display">
  <input id="result1" readonly type="text">
  <input id="result2" readonly type="text">
  <input id="result3" readonly type="text">     
  <select id="result4" readonly type="text">
</div>

我想要这样的东西 fiddle 我在 stack-overflow 上找到了减去计算。不需要计算只需要数据展示:

http://jsfiddle.net/eqnLc9fg/1/

数据为specific/unique。滑块将显示数据:

1st input = 149.0 F
2nd input = 100.6 C
3rd input = 57.8 psig
4th input (select) = 4.00 bar
(this would be center of the slider)

1st input = 150.0 F
2nd input = 101.1 C
3rd input = 56.8 psig
4th input (select) = 3.87 bar

一个滑块中会有 30-50 组这些数据。所有特定的,范围是不可能的。

Select 框还将控制其他输入和滑块。

不能 100% 确定滑块小部件是否是我正在尝试做的事情的最佳选择。考虑过 iscroll vertical 或 table with overflow。 Slider 对我来说似乎是最好的选择,它将所有内容都放在一个屏幕中。也欢迎提出建议。

我希望我问的很清楚! ; )

___select box____ ___input box____

----------------滑块----------------

____输入框________inputbox____

谢谢!

像这样更好地解释:

http://jsfiddle.net/Mottie/VfBkk/

您可以像这样构建它:

<div class="ui-grid-a">
  <div class="ui-block-a">
    <input id="result1" readonly type="text" />
  </div>
  <div class="ui-block-b">
    <input id="result2" readonly type="text" />
  </div>
</div>

<!-- /grid-a -->
<div class="full-width-slider">
  <input type="range" name="slider" id="slider" min="0" max="13" value="6" />
</div>
<div class="ui-grid-a">
  <div class="ui-block-a">
    <input id="result3" readonly type="text" />
  </div>
  <div class="ui-block-b">
    <select id="result4" readonly >
      <option value="0">The 1st Option</option>
      <option value="1">2Option</option>
      <option value="2">3Option</option>
      <option value="3">4Option</option>
      <option value="4">5Option</option>
      <option value="5">6Option</option>
      <option value="6">7Option</option>
      <option value="7">8Option</option>
      <option value="8">9Option</option>
      <option value="9">10Option</option>
      <option value="10">11 Option</option>
      <option value="11">12 Option</option>
      <option value="12">13 Option</option>
      <option value="13">14 Option</option>
    </select>
  </div>
</div>

这里是 CSS 隐藏滑块输入并使其全宽:

/* Hide the number input */
.full-width-slider input {
    display: none !important;
}
 .full-width-slider .ui-slider-track {
    margin-left: 15px;
}

我正在使用 JQM 网格来布置控件,但您可以通过其他方式进行。然后在脚本中捕获滑块的更改事件以更新输入:

var menSizes = Array(14)
    menSizes[0] = [5, 6, 38];
    menSizes[1] = [5.5, 6.5, 38.5];
    menSizes[2] = [6, 7, 39];
    menSizes[3] = [6.5, 7.5, 40];
    menSizes[4] = [7, 8, 40.5];
    menSizes[5] = [8, 9, 42];
    menSizes[6] = [8.5, 9.5, 42.5];
    menSizes[7] = [9, 10, 43];
    menSizes[8] = [9.5, 10.5, 44];
    menSizes[9] = [10, 11, 44.5];
    menSizes[10] = [10.5, 11.5, 45];
    menSizes[11] = [11, 12, 46];
    menSizes[12] = [11.5, 12.5, 46.5];
    menSizes[13] = [12, 13, 47];

$(document).on("pagecreate", "#page1", function(){
  $("#slider").on("change", function(){
    var sel = menSizes[$(this).val()];
    $("#result1").val(sel[0]);
    $("#result2").val(sel[1]);
    $("#result3").val(sel[2]);        
    $("#result4").val($(this).val()).selectmenu("refresh");
  });  
});

Working DEMO