表单验证是用户体验的重要组成部分。如果你设计了一个表单,它看起来很好,但没有得到验证,那么肯定会有问题(或者不太正确)。
通常,给用户的错误消息可以帮助他们快速解决问题,并确保他们的信息按照您的要求结构化。它还确保用户在提交表单之前填写了所有必需的信息。
jQuery Tiny Validate插件包含了您需要了解的关于表单验证的所有信息,每个方法都有很多示例。让我们开始吧。
1.在文档中插入主要的JavaScript和规则。
- <!-- jQuery is required -->
- <script src="/path/to/cdn/jquery.min.js"></script>
- <!-- Core JavaScript -->
- <script src="src/jquery.tinyvalidate.js"></script>
- <!-- Rules -->
- <script src="src/jquery.tinyvalidate.rules.js"></script>
2.使用CSS类将验证规则添加到表单字段,如下所示:
- <form class="example" action="" method="post">
- <fieldset>
- <legend>Project Information</legend>
- <div class="text">
- <label for="project-name">Project Name: *</label>
- <input type="text" pattern="\w+" required id="project-name" />
- </div>
- <div class="text">
- <label for="project-bud">Budget:</label>
- <input class="currency" size="8" type="text" id="project-bud" />
- <span class="unit">US Dollars</span>
- </div>
- <div class="text">
- <label for="project-zip">Zip Code: *</label>
- <input class="required zip" type="text" id="project-zip" />
- </div>
- <div class="dropdown">
- <label for="project-type">Project Type:</label>
- <select id="project-type" name="project-type">
- <option value="good">good</option>
- <option value="bad">bad</option>
- <option value="ugly">ugly</option>
- </select>
- </div>
- <fieldset class="radio choose-one">
- <legend>Size of Project</legend>
- <div>
- <input type="radio" name="size" id="twenty" value="1" />
- <label for="twenty">20 People</label>
- </div>
- <div>
- <input type="radio" name="size" id="more" value="2" />
- <label for="more">More than 20 People</label>
- </div>
- </fieldset>
- <div class="textarea">
- <label for="project-desc">Project Description</label>
- <textarea rows="4" cols="50" id="project-desc"></textarea>
- </div>
- </fieldset>
- <fieldset class="max max-2">
- <legend>I am a... </legend>
- <div>(choose no more than two)</div>
- <div class="checkbox">
- <input type="checkbox" name="i-am" id="driver" value="1" />
- <label for="driver">Licensed Driver</label>
- </div>
- <div class="checkbox">
- <input type="checkbox" name="i-am" id="timebomb" value="2" />
- <label for="timebomb">Walking Timebomb</label>
- </div>
- <div class="checkbox">
- <input type="checkbox" name="i-am" id="fiscal" value="3" />
- <label for="fiscal">Fiscal Nightmare</label>
- </div>
- </fieldset>
- <fieldset class="actions">
- <input name="submitfoo" class="submit" type="submit" value="Submit Form" />
- <a class="cancel" href="#">Cancel</a>
- </fieldset>
- </form>
3.调用表单元素上的Tiny Validate,插件将完成其余操作。
- $('form.example').tinyvalidate({
- // options here
- });
4.如您在jquery.tinyvalidate.rules.js查询
.
- $.tinyvalidate.rules.phone = {
- ruleClass: 'phone',
- rule: function(r) {
- return (/\(?\d{3}\)?[\. -]?\d{3}[\. -]?\d{4}/).test(r) || r === '';
- },
- text: 'Invalid Format ',
- check: 'value'
- };
5.自定义表单验证器的可用选项。
- $('form.example').tinyvalidate({
- // determine whether to ignore disabled fields
- ignoreDisabled: true,
- // determine whether to ignore hidden fields
- ignoreHidden: true,
- // determine whether to use Regex defined in the pattern attribute
- usePattern: false,
- // other events to trigger the form validation
- otherEvents: 'blur',
- // called when one of the events is triggered.
- onEvents: $.noop,
- // called if an error occurs when submitting
- submitError: function(errorCount) {},
- // override the naive submit event
- // function() { /* do something */ }
- submitOverride: null
- });
6.自定义内联错误消息。
- $.fn.tinyvalidate.defaults.inline = {
- insertType: 'after',
- insertTo: null,
- errorElement: '<div class="error-message"></div>',
- errorAnimate: {
- effect: 'fadeIn',
- speed: 400
- },
- containerTag: 'div',
- containerErrorClass: 'error'
- };
7.自定义错误消息摘要。
- $.fn.tinyvalidate.defaults.summary = {
- insertTo: 'form',
- insertType: 'append',
- wrapper: '<div class="error-summary"></div>',
- preMessage: 'Please review the {num} highlighted {field|fields} and try again.<ul>',
- postMessage: '</ul>',
- messageAnimate: {
- effect: 'fadeIn',
- speed: 400
- },
- // set to null if you don't want to include details in the summary message:
- lineItems: {
- wrapper: '<li></li>',
- errorElement: '<span class="error-message"></span>',
- // create link in summary details to inputs with errors
- linkify: true
- }
- };
8.清除所有错误。
- $("form.example").tinyvalidate('removeErrors');
9.销毁插件。
- $("form.example").tinyvalidate('destroy');