Jquery 验证 GreaterThanEqual 和 LessThanEqual 在数字 9 以上无法正常工作

Jquery Validation GreaterThanEqual & LessThanEqual not working correctly above number 9

我制作了这个应该可以正常工作的简单表格。我似乎找不到问题所在。在数字字段(长度和宽度)的输入为 9 之前它运行良好,但是当我输入 10 及以上时,它要求更大的数字。

代码如下:

HTML

<div class="form-group col-md">
    <label class="form-label mb-1 text-2" for="length">Length</label>
    <input type="number" class="form-control text-3 h-auto py-2 sizes-units" name="length" id="length" value="{{ Request::Input('length') }}">
</div>
<div class="form-group col-md">
    <label class="form-label mb-1 text-2" for="width">Width</label>
    <input type="number" class="form-control text-3 h-auto py-2 sizes-units" name="width" id="width" value="{{ Request::Input('width') }}">
</div>
<div class="form-group col-md">
    <label class="form-label mb-1 text-2" for="height">Height</label>
    <input type="number" class="form-control text-3 h-auto py-2 sizes-units" name="height" id="height" value="{{ Request::Input('height') }}">
</div>

Jquery

rules: {
  length: {
    required: true,
    min: 2,
    max: 30,
    greaterThanEqual: "#height",
  },
  width: {
    required: true,
    min: 2,
    max: 30,
    greaterThanEqual: "#height",
  },
  height: {
    required: true,
    min: 1,
    max: 7,
  }
}

如果这是一个愚蠢的问题,我很抱歉。我只在 php 和 laravel 工作过。通过使用预构建的所有内容或使用服务器端验证,我基本上能够避免任何事情 javascript。在这种情况下我不能,因为这个表格应该计算同一页面上的定价并且正在使用“获取”请求所以...

首先,我假设您正在使用 jQuery Validate 作为验证插件 - 您没有指定。

我不能 100% 确定,但我很确定是您的 'greaterThanEqual' 规则导致了至少一些问题。

编辑:

既然你已经确认你正在使用 https://github.com/jquery-validation/jquery-validation/blob/master/src/additional/greaterThanEqual.js 方法,那么从我的测试来看,它应该只是一个改变的例子:

return value >= target.val();

return value >= parseInt(target.val());

将值转换为整数,而不是您怀疑的字符串。这似乎现在有效。