【问题标题】:value is not set in slider html control滑块 html 控件中未设置值
【发布时间】:2016-07-29 11:26:00
【问题描述】:

关于 HTML 中的 Range 输入类型 当我更改滑块(范围输入类型)中的值时,该值在文本框中显示 但是当我在文本框中更改值时也没有在滑块中设置该值(范围输入类型)。 这是代码 它的功能: 我们还希望当我们滑动滑块时,文本框中的值也会发生变化 功能:

 <script type="text/javascript">
function updateTextInput(val) {
document.getElementById('textInput').value=val; 
}
function updateTextInput2(val) {
document.getElementById('range1').value = val;
}
</script> 

HTML:

<input type="range" min="0" max="100" value="0" id="range1"      onchange="updateTextInput(this.value);"/>
   <input type="text" id="textInput" value="0"      onchange="updateTextInput2(this.value);"> 

【问题讨论】:

  • 好像行得通,改值后要注意了
  • 你能告诉我在改变值后如何集中注意力,因为我们是第一次使用这个控件
  • 你可以用onkeyup代替onchange

标签: javascript html


【解决方案1】:

调试updateTextInput函数以验证要设置的值,

或者试试

document.getElementById('textInput').value = document.getElementById('range1').value;

【讨论】:

  • 应该把它放在函数 updateTextInput 或 updateTextInput1 的什么地方
【解决方案2】:

您需要将文本框中调用函数的事件从onchange更改为oninputonchange 事件仅在控件失去焦点后触发,即当用户单击其他内容时。每次用户更改文本框中的值时,都会触发 oninput 事件。

您的代码应如下所示:

<input type="range" min="0" max="100" value="0" id="range1" onchange="updateTextInput(this.value);" />
<input type="text" id="textInput" value="0" oninput="updateTextInput2(this.value);">

您的 JavaScript 函数可以 100% 正常工作。

这是codepen 上的一个工作示例。

【讨论】:

  • 当我在文本框中输入任何数字时,当我使用 oninput 时滑块居中
  • 它确实有效,我已经编辑了我的帖子并添加了一个示例链接。看一下,如果还有问题,请粘贴您的完整代码。
猜你喜欢
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
  • 1970-01-01
  • 2020-09-18
  • 1970-01-01
相关资源
最近更新 更多