【问题标题】:How can I retrieve and display slider range value?如何检索和显示滑块范围值?
【发布时间】:2015-03-17 15:56:19
【问题描述】:

如何从输入范围中检索和显示滑块值?

我正在使用 Meteor 并且更喜欢 javascript 代码。

  <input id="slider" type="range" min="50" max="100" step="10" oninput="sliderChange(this.value)">

  <output id="sliderVal"> </output>

javascript;

function sliderChange(val) {
document.getElementById('sliderVal').innerHTML = val;
}

【问题讨论】:

  • 你有两个具有相同 id 的元素
  • 另一个document.getElementById('slider').value
  • 不敢相信我错过了。感谢您指出这一点。

标签: javascript html slider


【解决方案1】:

引用http://www.w3schools.com/jsref/event_oninput.asp后 看来您可以根据 oninput 的更改事件执行方法。

以下代码检索并显示页面上的数字。

<template name="myTemplate>
 <input id="slider" type="range" min="50" max="100" step="10"  value="50">
 <output id="output"></output>
</template>

client.js

Template.myTemplate.rendered = function(){
document.getElementById("slider").oninput = function() {
    myFunction()
};
}

function myFunction() {
   var val = document.getElementById("slider").value //gets the oninput value
   document.getElementById('output').innerHTML = val //displays this value to the html page
   console.log(val)
}

流星方式:此外,您可以使用change eventType 并将其映射为您想要的方式。这在输入更改状态时有效。

Template.yourTemplate.events({
  'change input[type=range]': function(event){
     var sliderValue = event.currentTarget.value
     Session.set('sliderValueIs', sliderValue)
     //then you can get this session and return it in a helper to display on your page
  }
})

【讨论】:

    【解决方案2】:

    RE:在拖动 HTML 输入元素时不断更改 Session var:

    如果您侦听change 事件,该函数将仅在释放鼠标时运行。这意味着它不会在拖动时运行。

    如果您监听input 事件,即使在拖动时该函数也会运行。

    流星之道

    Template.yourTemplate.events({
    'input input[type=range]': function(event){
         var sliderValue = event.currentTarget.value
         Session.set('sliderValueIs', sliderValue)
         //The Session var will be set as you drag the slider across its range of values.
         //later, you can get this session and return it in a helper to display on your page
      }
    })
    

    【讨论】:

      【解决方案3】:

      如 cmets 中所述,您有两个具有相同 ID 的元素,并且 ID 必须是唯一的。解决此问题后,您可以获取并设置滑块的值,例如:

      function sliderChange(val) {
          document.getElementById('output').innerHTML = val; // get
      }
      document.getElementById('slider').value = 50; // set
      

      jsFiddle example

      上面的示例将滑块设置为 50,然后随着滑块的变化更新输出元素。

      【讨论】:

      • j08691,我在 myTemplate.rendered 中设置了 javascript 代码,但功能 sliderChange 仍然没有被拒绝。不知道大家是否熟悉meteor.js,
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多