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 フレームワーク テンプレートのために @@ が必要であることに注意してください。ただし、ブラウザには次のような同じ行が表示されます。

<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 に答える