html - 当一个输入范围滑块值小于另一个时执行某些操作(使用 jQuery)
问题描述
我正在尝试使用 jQuery 设置两个表单输入范围滑块的背景颜色。用户正在选择最小和最大距离,所以我想在最小距离大于最大距离时提醒用户。我已经使用 jQuery 进行了尝试,但下面的脚本对我没有用。
这是我的两个输入范围滑块:
<input id="mindistance" class="rangeslider" type="range" name="mindistance" min="0" max="100" value="0" step="5">
<input id="maxdistance" class="rangeslider" type="range" name="maxdistance" min="0" max="100" value="100" step="5">
这是我目前的 jQuery:
$('#maxdistance').blur(function(){
if ( $(this).val().length <= $('$mindistance').val().length ) {
$(this).css({ 'background-color': 'rgb(255,175,175)' });
$('#mindistance').css({ 'background-color': 'rgb(255,175,175)' });
} else {
$(this).css({ 'background-color': '' });
$('#mindistance').css({ 'background-color': '' });
}
});
我也尝试过,所以我怀疑操作员没有在这里工作,.focusout()
但我不确定。有人知道怎么做这个吗?.blur()
<=
编辑:两者.val()
兼而有之.val().length
。
编辑:也试过$(document).on('input', '#mindistance', function() { /* check values */ });
解决方案
首先,您在尝试引用 maxdistnce 时出错。'$maxdistance' 应该是 '#maxdistance'
我改变了一些其他的东西
- 将您的滑块放在 div 中并更改这些 div 的 bgcolor 而不是滑块本身
- 每次事件发生时重置背景颜色
- 使用 on change 事件而不是 blur(不是必需的)
- 删除 .val().length 并单独使用 .val()
<div class="mindistance">
<label>min</label>
<input id="mindistance" class="rangeslider" type="range" name="mindistance" min="0" max="100" value="0" step="5">
</div>
<div class="maxdistance">
<label>max</label>
<input id="maxdistance" class="rangeslider" type="range" name="maxdistance" min="0" max="100" value="100" step="5">
</div>
$(document).on('change', '#mindistance',function(e){
console.log($(this).val(), $('#maxdistance').val());
$('.mindistance').css({ 'background-color': '' });
$('.maxdistance').css({ 'background-color': '' });
if ( $(this).val() <= $('#maxdistance').val() ) {
$('.mindistance').css({ 'background-color': 'rgb(255,175,175)' });
$('.maxdistance').css({ 'background-color': 'rgb(255,175,175)' });
}
});
推荐阅读
- mongodb - 如何将 mongodb 输入查询添加到投影结果?
- redis - 某些键空间过期事件未触发(Redis)
- python - Python 中的 Dijkstra 算法耗时太长
- javascript - 如何在同一/当前设置固定位置?
- cuda - 优化我的 Cuda 内核以对火炬张量内的不同索引范围求和
- javascript - 无法读取未定义的属性 scrollIntoView
- python-3.x - Azure Databricks,Python - 将 json 列字符串转换为数据框
- unix - 在第二个文件中的列之后添加一个文件中的列,同时考虑到两个文件具有不同的列数
- jquery - 在用逗号分隔的文本区域中的每个输入值上追加一行 jQuery(代码优化需要)
- java - 如何在 JAVA 程序中根据用户名(VARCHAR)从 mySQL 检索用户 ID(INT)?