Входные данные диапазона проверки не перекрываются - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь проверить, что два входных диапазона, которые фильтруют возраст, не совпадают друг с другом.Я не могу найти способ сделать это правильно, если ползунки ведут себя беспорядочно, прыгая с 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 Проверка и фильтры

Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Вот как теперь выглядит функция:

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 !!

0 голосов
/ 07 июня 2018

Не могу воспроизвести вашу проблему в скрипте, но я уже вижу 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...