JavaScript проверка ввода - неожиданные результаты - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть эта функция прослушивателя событий

document.addEventListener('input', function (e) {
    if (e.target.classList.contains('mileage-validation')) {
        if (document.getElementById('warningMileage').value > document.getElementById('scheduledMileage').value) {                
            document.getElementById('mileageError').classList.toggle('hidden');
        }
        else {
            document.getElementById('mileageError').classList.toggle('hidden');
        }
    }
})

со следующей разметкой в ​​виде бритвы

            <li>@Html.LabelFor(m => m.Maintenance.ScheduledMileage) @Html.EditorFor(m => m.Maintenance.ScheduledMileage, new { htmlAttributes = new { @class = "form-control mileage-validation", id = "scheduledMileage" } })</li>
            <li>@Html.ValidationMessageFor(m => m.Maintenance.ScheduledMileage, null, new { @class = "validation-error" })</li>

            <li>@Html.LabelFor(m => m.Maintenance.WarningMileage) @Html.EditorFor(m => m.Maintenance.WarningMileage, new { htmlAttributes = new { @class = "form-control mileage-validation", id = "warningMileage" } })</li>
            <li>
                @Html.ValidationMessageFor(m => m.Maintenance.WarningMileage, null, new { @class = "validation-error" })
                <span class="validation-error hidden" id="mileageError">Warning Mileage should be less than Scheduled Mileage.</span>
            </li>

Я пытаюсь проверить, что значение WarningM Пробег меньше значение ScheduledM Пробег (отображающее ошибку, если ложь), прежде чем пользователь отправляет.

  1. Тест - введите 10 в поле «Запланированный пробег» с 0 в поле «Предупреждение о пробеге» Результат - отображается ошибка enter image description here

    неверно

  2. Проверка - введите 9 в поле «Предупреждающий пробег», при этом 10 остается в поле «Запланированный пробег» Результат - ошибка скрыта enter image description here

    правильно

  3. Тест - Go вернуться в поле «Запланированный пробег» и увеличить значение до 11 Результат - отображается ошибка (но предупреждение о пробеге меньше запланированного пробега!) enter image description here

    неправильно

Надеюсь, это имеет смысл, без сомнения, это что-то глупое. Заранее спасибо!

1 Ответ

0 голосов
/ 28 февраля 2020

нашел ответ здесь javascript "меньше чем", если инструкция не выполнена"Вы можете просто выполнить parseInt / parseFloat для значения"

...