Hibernate还是比较常用的,于是我研究了一下Hibernate JavaScript验证程序,在这里拿出来和大家分享一下,希望对大家有用。
简单的Hibernate JavaScript验证程序
尽管标签文件生成的 HTML 文件可以帮助防止一些错误的产生,但是在视图层并没有任何代码来真正进行错误检查。由于可以使用类属性,现在就可以添加一些简单的JavaScript来实现这种功能了,这里的JavaScript也可以是通用的,在任一表单中都可以重用。
- <script type="text/javascript">
- function checkRequired(form) {
- var requiredLabels = document.getElementsByClassName("required", form);
- for (i = 0; i < requiredLabels.length; i++) {
- var labelText = requiredLabels[i].firstChild.nodeValue;
- // Get the label's text
- var labelFor = requiredLabels[i].getAttribute("for");
- // Grab the for attribute
- var inputTag = document.getElementById(labelFor);
- // Get the input tag
- if (inputTag.value == null || inputTag.value == "") {
- alert("Please make sure all required fields have been entered.");
- return false; // Abort Submit
- }
- }
- return true;
- }
- </script>
这个JavaScript是通过为表单声明添加 onsubmit="return checkRequired(this);" 被调用的。这个脚本简单地获取具有所需要的类的表单中的所有元素。由于我们的习惯是在标签标记中使用这个类,因此代码会通过 for 属性来查找与这个标签连接在一起的输入域。如果任何输入域为空,就会生成一条简单的警告消息,表单提交就会取消。可以简单地对这个脚本进行扩充,使其扫描多个类,并相应地进行验证。
对于基于JavaScript的综合的验证集合来说,***是使用开源实现,而不是自行开发。
- onclick="new Effect.SlideDown('creditCardHelp')"
这个函数是 Script.aculo.us 库的一部分,这个库提供了很多高级的效果。如果正在使用 Script.aculo.us,就需要对所构建的内容使用 Prototype 库。JavaScript验证库的一个例子是由 Andrew Tetlaw 在 Prototype 基础上构建的。(请参看 参考资料 一节中的链接。)他的框架依赖于被添加到输入域的类:
- <input class="required validate-number" id="field1" name="field1" />
可以简单地修改 text.tag 的逻辑在 input 标签中插入几个类。将 class="required" 添加到输入标签和 label 标签中不会影响 CSS 规则,但会破坏简单Hibernate JavaScript验证程序。如果要混合使用框架中的代码和简单的JavaScript代码,***使用不同的类名,或在使用类名搜索元素时确保类名有效并检查标签类型。
【编辑推荐】