Недоумение Ошибка сравнения Javascript Integer - PullRequest
1 голос
/ 19 октября 2011

Это, наверное, очень простая вещь, но я не могу на всю жизнь разобраться или найти что-то отдаленно похожее на проблему. Я довольно новичок в Javascript, и я делаю некоторые простые проверки формы на полях HTML. Вот две проблемы:

    if(minSquare.search(intCheck) == -1 || minSquare < 500 || minSquare > 5000 || minSquare > maxSquare)
    {
        errorPrint.innerHTML += "Incorrect minimum square feet amount <br />";
        errors++;
    }

    if(maxSquare.search(intCheck) == -1 || maxSquare > 5000 || maxSquare < 500)
    {
        errorPrint.innerHTML += "Incorrect maximum square feet amount <br />";
        errors++;
    }

minSquare / maxSquare - значения, взятые из полей HTML. Как вы можете видеть, значения в квадратных футах (в условиях недвижимости) должны быть между 500-5000 и должны быть целыми числами. Логика есть, но каждый раз, когда я отправляю форму, выводится ошибка для неправильных минимальных квадратных футов, если значение равно ниже 1000, несмотря на то, что нижний предел равен 500. Это тот же случай для другой пары полей в том случае, если значение меньше 100 000, оно не будет печататься, несмотря на то, что его собственный нижний предел составляет 30 000.

По какой-то причине, когда я ввожу 500 для минимальной суммы и 5000 для максимальной суммы (правильный диапазон), это не представит никаких проблем. Но если я введу, скажем, 501 и 5000, он выдаст ошибку для минимального значения. Я понятия не имею, почему это происходит. Я не думаю, что это проблема браузера; пробовал как на Chrome, так и на Firefox, та же проблема. Любая помощь приветствуется; чем глупее проблема, тем быстрее я могу это закрыть =)

РЕДАКТИРОВАТЬ: Исправлена ​​проблема. Знал, что это было просто. Согласно приведенному ниже совету, мне просто нужно было проанализировать входные данные, а затем мне нужно было избавиться от метода поиска RegExp, который работал бы, только если искомая переменная является строкой. Спасибо тем, кто ответил.

...