Javascript 验证范围输入不重叠
我试图验证过滤年龄的两个范围输入不会相互重叠。我找不到一种方法来让它正常运行,而不让滑块行为不稳定,从0跳到50,诸如此类 我尝试过不同的方法(纯JS),结果相似:Javascript 验证范围输入不重叠,javascript,html,Javascript,Html,我试图验证过滤年龄的两个范围输入不会相互重叠。我找不到一种方法来让它正常运行,而不让滑块行为不稳定,从0跳到50,诸如此类 我尝试过不同的方法(纯JS),结果相似: if(input1.value >= input2.value || input2.value <= input1.value){ input1.value = toString(input2.value - 1); input2.value = toString(input1.value + 1); }
if(input1.value >= input2.value || input2.value <= input1.value){
input1.value = toString(input2.value - 1);
input2.value = toString(input1.value + 1);
}
if(input1.value>=input2.value | | input2.value无法在您的小提琴中重现您的问题,但我已经在您的代码中看到两个问题:
- 如果
input1.value
是“50”
,那么input1.value+1
将是“501”
- 应在数字上调用
toString()
:50.toString()
因此,您的代码应该如下所示:
var minEdad = Number(input1.value),
maxEdad = Number(input2.value);
if(minEdad >= maxEdad) {
// Decide here what to do, for example
input1.value = (maxEdad - 1).toString();
}
这就是函数现在的样子:
function filtroEdad(input1, input2) {
var edadMin = Number(input1.value);
var edadMax = Number(input2.value);
if(edadMin >= edadMax){
input1.value = (edadMax - 1).toString();
}
if(edadMax <= edadMin){
input2.value = (edadMin + 1).toString();
}
函数filteroedad(input1,input2){
var edadMin=编号(输入1.值);
var edadMax=编号(输入2.值);
如果(edadMin>=edadMax){
input1.value=(edadMax-1).toString();
}
如果(edadMax但如果我想让即将重叠的滑块向上或向下推动另一个滑块,该怎么办?另一方面,当我触摸滑块时,滑块会直接跳到50it@MartínScola:然后你需要在两个滑块上分别处理onchange
。请注意,这种跳转到50的情况不会发生在我身上。我使用的是Chrome。我是同样使用Chrome。我唯一的问题是输入1。另一个很好用。问题似乎是从8上升到9或从9下降到8。两次滑块都重置为50,这甚至不是滑块开始时的默认值。没关系,滑块有问题。你的答案修复了这件事太离谱了!