我正在尝试验证过滤年龄的两个范围输入不会相互重叠。如果没有滑块表现不正常,从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
谢谢!
答案 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();
}