我第一次使用这个库,也许我犯了一些愚蠢的错误,但我卡住了。
我正在使用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 :(得分:0)
您是否先拨打regula.bind()
?你必须调用它,以便监管可以检查所有元素,并找出哪些元素对它们有约束。这可能就是为什么抱怨没有任何限制因素绑定在元素上。