【问题标题】:jQuery Validate - How can I validate if a number input is higher than another?jQuery Validate - 如何验证一个数字输入是否高于另一个?
【发布时间】:2017-04-14 03:00:13
【问题描述】:

我的表单中有以下输入:

<h4>Precio de compra:</h4>
Gs. <input required class="corto2" type="number" placeholder="Precio de compra" id="pcompra" name="pcompra" value="{{request.form.pcompra}}">
<h4>Precio de venta:</h4>
Gs. <input required class="corto2" type="number" placeholder="Precio de venta" id="pventa" name="pventa" value="{{request.form.pventa}}">

这个规则在我的 jquery 验证脚本上:

$(document).ready(function () {
    $('#form').validate({
        rules: {
            pcompra: {
                required: true,
            },
            pventa: {
                required: true,
            },
        }
   }
}

我正在寻找的不是针对硬编码值验证 pventa,例如 min: 20,我想要的是检查 pventa 值高于 pcompra 的值。

我可以用 jvalidate 的规则方法来实现吗?还是我必须添加自己的规则/功能?

PS:它是烧瓶网络应用程序的一部分,因此请忽略带有 jinja2 语法的部分 ({{"something"}})

【问题讨论】:

    标签: jquery jquery-validate


    【解决方案1】:

    使用jQuery.validator.addMethod():

    $(document).ready(function () {
        jQuery.validator.addMethod("comparison", function (value, element) {
            var pcompra = $("#pcompra").val();
            return this.optional(element) || value > pcompra;
        });
        $("#form").validate({
            rules: {
                pcompra: {
                    required: true,
                    number: true
                },
                pventa: {
                    required: true,
                    number: true,
                    comparison: true
                }
            },
            messages: {
                pcompra: {
                    required: 'This field is required.',
                    number: 'Please enter a valid number.'
                },
                pventa: {
                    required: 'This field is required.',
                    number: 'Please enter a valid number.',
                    comparison: 'This field should larger than field pcompra'
                }
            }
        });
    });
    

    【讨论】:

    • 不适用于某些值,但它是正确的解决方案。我只需要调整一些东西以使其完美。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多