0

我第一次使用这个库,也许我犯了一些愚蠢的错误,但我卡住了。

我正在使用 Play Framework 2.0 像这样为规则 1.3.3 提供服务

<script src="@routes.Assets.versioned("javascripts/regula-1.3.3.js")" type="text/javascript"></script>

然后我有

<input type="text" name="age" id="age" data-constraints="@@Range(min=18, max=65)" />

请注意,由于 Play Framework 模板,@@ 是必需的,但是浏览器会看到相同的行,如下所示:

<input type="text" name="age" id="age" data-constraints="@Range(min=18, max=65)">

    $(document.body).on('change','input', function (event) {
        var constraintViolations = regula.validate({
            elements: [document.getElementById("age")]
        });
    });

在控制台上:

Uncaught IllegalArgumentException: No constraints have been bound to the specified elements: age. Function received: {elements: [[object HTMLInputElement]], elementIds: [age]}

如果我添加另一个元素:

<input type="text" name="email" id="email" value="@form("email").value" data-constraints='@@Email' >

并将验证码更改为:

    $(document.body).on('change','input', function (event) {
        var constraintViolations = regula.validate({
            elements: [document.getElementById("age"), document.getElementById("email")]
        });
    });

我得到:

Uncaught TypeError: Cannot read property 'id' of null

每当输入字段更改时,我也尝试调用 regula.validate() ,但是这个简单的每次都返回一个空数组。

我究竟做错了什么?

谢谢你的帮助。

4

1 回答 1

0

你是regula.bind()先打电话的吗?您必须调用它,以便 regula 可以检查所有元素并找出哪些元素对它们有限制。这可能就是为什么它抱怨没有约束元素的原因。

于 2015-01-20T16:56:42.270 回答