验证范围输入不重叠

时间:2018-06-07 18:23:31

标签: javascript html5

我正在尝试验证过滤年龄的两个范围输入不会相互重叠。如果没有滑块表现不正常,从0跳到50,以及类似的东西,我找不到一种方法来正确完成它。

我尝试过不同的方法(纯JS),结果相似:

if(input1.value >= input2.value || input2.value <= input1.value){
    input1.value = toString(input2.value - 1);
    input2.value = toString(input1.value + 1);
}

这个让滑块跳回到50.我不记得我尝试了什么,但所有都做同样的事情。要么跳回50,要么最小范围从2或3跳到100。

如果可能的话,我宁愿不使用jQuery

这是整个事情的小提琴:

JSfiddle Validation and filters

谢谢!

2 个答案:

答案 0 :(得分:1)

这就是现在的功能:

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();
}

谢谢@RaphaMex !!

答案 1 :(得分:0)

无法在您的小提琴中重现您的问题,但我已在您的代码中看到2个问题:

  • 如果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();
}