2015-01-19 4 views
0

Im, используя эту библиотеку в первый раз, возможно, я делаю какую-то глупую ошибку, но Im застрял.Regula Form Validation Crashes on validation

Я использую 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)" /> 

Пожалуйста, обратите внимание, что @@ требуется из-за воспроизведение рамки шаблона, однако браузер видит ту же строку, как это:

<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() всякий раз, когда изменяется поле ввода, но это простое возвращает пустой массив каждый раз.

Что я делаю неправильно?

Благодарим за помощь.

ответ

0

Вы звоните по телефону: regula.bind()? Вы должны называть это так, чтобы regula мог проверить все элементы и выяснить, какие из них имеют ограничения на них. Вероятно, поэтому он жалуется, что никаких ограничений не было связано с элементом.