繁体   English   中英

JavaScript 输入验证 - 意外结果

[英]JavaScript input validation - unexpected results

我有这个事件监听器 function

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

在 razor 视图中使用以下标记

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

在用户提交之前,我试图在前端验证 WarningMileage 值是否小于 ScheduledMileage 值(如果为 false 则显示错误)。

  1. 测试- 在 Scheduled Mileage 字段中输入 10,在 Warning Mileage 字段中输入 0结果- 显示错误在此处输入图像描述

    错误的

  2. 测试- 在 Warning Mileage 字段中输入 9,在 Scheduled Mileage 字段中输入 10结果- 错误被隐藏在此处输入图像描述

    正确的

  3. 测试- Go 返回 Scheduled Mileage 字段并将值增加到 11结果- 显示错误(但警告里程小于预定里程!) 在此处输入图像描述

    错误的

希望这是有道理的,毫无疑问这是愚蠢的。 提前致谢!

在这里找到答案javascript “小于”如果语句失败“您可以简单地对值执行 parseInt/parseFloat”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM