javascript - 使用 if/else 语句根据滑块值取值
问题描述
我正在尝试使用滑块更改值的显示方式。我制作了一个显示值的标签,如下所示。
课程时间:1天
此处显示的值根据滑块值而变化。
因此,当滑块值为 1 时,应显示为“天”,当滑块值大于 1 时,应显示为“天”。
我在我的 javascript 中使用了 if/else 语句来更改根据滑块值显示的名称。我使用的编码如下。
JS文件:
// method used to get value from slider and display.
function slider_value() {
var slider = document.getElementById("myRange");
var output = document.getElementById("demo");
output.innerHTML = slider.value;
slider.oninput = function () {
output.innerHTML = this.value;
}
}
// method used to change name according to slider value
function value_name() {
var count = document.getElementById("myRange");
var outname = document.getElementById("dname");
if (parseInt(count.value) == 1) {
outname.innerHTML = "Day";
}
else {
outname.innerHTML = "Days";
}
}
HTML 文件:
<label for="duration">
Course Duration :
<span id="demo"></span>
<span id="dname"></span>
</label>
<div class="slidecontainer">
<input type="range" min="1" max="15" value="1" class="slider" id="myRange">
</div>
我已将函数调用到视图中,如下所示:
<script>
slider_value();
value_name();
</script>
调试时编码不会显示任何错误,但它只显示天或天,并且不会根据滑块值更改。所以我期待一些帮助和想法来纠正这个问题。
谢谢一堆。
解决方案
您需要使用输入元素的 oninput 和 onchange 事件,例如:
oninput="slider_value(this.value)" onchange="slider_value(this.value)"
.
两者都使用以获得完全兼容性,因为oninput
IE10 不支持。
这里的小例子,让你开始: https ://codepen.io/anon/pen/ewBNGj
请注意,设置日期/日期字符串 ( value_name()
) 的函数是从slider_value()
函数内部调用的。
推荐阅读
- java - 尝试 POST 到端点时出现未知协议错误
- oneget - 新的 winget 和 Microsoft.PackageManagement 有什么关系
- symfony - Symfony 5:如何使用 OneToMany 关系向会话中经过身份验证的用户添加数据?
- css - div元素在设置宽度为0后不折叠?
- java - 如何从 Android 上的 firebase 获取标记的信息?
- javascript - 如何将 Converse js XMPP 与 React 应用程序集成
- java - 如何根据文本文件中的特定关键字解析文本文件
- ruby-on-rails - 为测试目的创建一个完全载入的条带连接帐户?
- c - Linux Socket - 重定向 stdout/stderr 后读取返回 0
- xcode - 显示相互依赖数据数组的最佳 Xcode/cocoa 方法