表单验证是用户体验的重要组成部分。如果你设计了一个表单,它看起来很好,但没有得到验证,那么肯定会有问题(或者不太正确)。
通常,给用户的错误消息可以帮助他们快速解决问题,并确保他们的信息按照您的要求结构化。它还确保用户在提交表单之前填写了所有必需的信息。
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');