如果不兼容,则隐藏范围输入
Hide range input if not compatible
我使用范围输入来调整web应用程序中的缩放。我使用一些JavaScript将其与旁边的文本输入同步,这样用户就可以在移动滑块时看到值,还可以键入他们想要的值。
<input type="range" name="amountRange" min="0" max="20" value="0" onchange="this.nextElementSibling.value=this.value" />
<input type="number" name="amountInput" min="0" max="20" value="0" onchange="this.previousElementSibling.value=this.value" />
问题是有些浏览器(主要是我想支持的IE9)与范围输入不兼容,所以范围将显示为文本框。这意味着他们将看到两个类似的文本框:
<input type="text" name="amountRange" min="0" max="20" value="0" onchange="this.nextElementSibling.value=this.value" />
<input type="text" name="amountInput" min="0" max="20" value="0" onchange="this.previousElementSibling.value=this.value" />
如果浏览器与范围输入不兼容,我应该如何隐藏它们?
Javascript可以检测输入类型,比如:
var rangeInput = document.forms.myformname.amountRange;
if (rangeInput.type === 'range') {
// This browser supports range.
}
else {
rangeInput.style.display 'none';
}
似乎试图设置input.type = "somethingIEdoesntunderstand"
实际上会导致IE9中的错误;所有的浏览器都会过滤出他们所知道的可能的类型。
您可以轻松处理所有html浏览器的不兼容问题,并使用modernizr.js,确保导入库:
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>
然后在IE中检查你的网页,在HTML标签中,你会发现一些以单词"no"开头的属性,比如没有画布等等,所有不受支持的功能都将以没有HTML或CSS开头,你可以使用它来应用你想要的任何风格。
示例:
.no-cssreflections {
border-radius: 15px;
}
相关文章:
- 正在全局范围中查找JavaScript函数
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 显示5秒后隐藏潜水
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 如果不兼容,则隐藏范围输入
- 从范围中删除对象时,它会在 Angularjs 中隐藏其余对象
- X轴范围根据隐藏的系列进行更改
- jQuery:检索日期选择器日期,检查是否在日期范围内,显示/隐藏字段
- AngularJS - 显示/隐藏根范围内的元素
- 如何显示/隐藏范围,具体取决于本地时间是否等于“开始日期”和“结束日期”Jquery之间
- 使用嵌入隐藏内部元素的父范围的指令范围
- 代码:折叠/隐藏 x 轴日期范围的一部分
- 当范围不包含任何内容时隐藏父项
- Jquery UI 范围滑块,用于隐藏 HTML 表中的行
- 发送用<输入类型=“;范围“>(滑块)到Paypal按钮's的价格值<输入类型=“;隐藏的“;
- 如何在点击按钮时隐藏/显示高图表的滚动条和范围选择器
- 如果子元素有HTML数值范围样式值,则隐藏.parent
- JavaScript沙箱:在给定范围内隐藏全局变量
- 如果子元素包含文本数字范围,则隐藏父元素