Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@

Features
~~~~~~~~
- pat-validation: Allow for HTML5 style ``required`` attributes without a value.
- pat-validation: Added the possibility to check for fields equality
- pat-validation: Dont use :input jquery extension for better performance
- pat-validation: Update validate.js to 0.13.1
- Prevent "Modernizr.inputtypes is undefined" error

- pat-validation: Do not trigger on empty dates. Fixes: #711
- Remove PhantomJS - we're using ChromeHeadless already.
- Simplify package.json and remove unused.
Expand Down
14 changes: 7 additions & 7 deletions src/pat/validation/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@
<body>
<form class="pat-validation vertical" data-pat-validation="disable-selector: .pat-button" method="get" action="#" novalidate>
<fieldset class="horizontal">
<label>Full name <input type="text" name="name" required="required"/></label>
<label>Full name <input type="text" name="name" required/></label>

<label>Age <input type="number" name="age" min="16" max="65" required="required"/></label>
<label>Age <input type="number" name="age" min="16" max="65" required/></label>

<fieldset class="group pat-checklist radio">
<legend>Favourite colour</legend>
<label><input name="colour" required="required" type="radio" value="blue"/> Blue</label>
<label><input name="colour" required="required" type="radio" value="pink"/> Pink</label>
<label><input name="colour" required="required" type="radio" value="red"/> Red</label>
<label><input name="colour" required="required" type="radio" value="yellow"/> yellow</label>
<label><input name="colour" required type="radio" value="blue"/> Blue</label>
<label><input name="colour" required type="radio" value="pink"/> Pink</label>
<label><input name="colour" required type="radio" value="red"/> Red</label>
<label><input name="colour" required type="radio" value="yellow"/> yellow</label>
</fieldset>

<label>Planning start
Expand All @@ -43,7 +43,7 @@
<label>Required date
<input
type="date"
required="required"
required
name="measure.date-required:records"
id="date-required"
/>
Expand Down
10 changes: 10 additions & 0 deletions src/pat/validation/tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,16 @@ define(["pat-registry", "pat-validation"], function(registry, pattern) {
expect($el.find('em.warning').length).toBe(0);
});

it("validates required inputs with HTML5 required attribute style", function() {
var $el = $(
'<form class="pat-validation">'+
'<input type="text" name="name" required>'+
'</form>');
pattern.init($el);
$el.find(':input').trigger('change');
expect($el.find('em.warning').length).toBe(1);
});

it("can show custom validation messages", function() {
var $el = $(
'<form class="pat-validation" data-pat-validation="message-required: I\'m sorry Dave, I can\'t let you do that.">'+
Expand Down
2 changes: 1 addition & 1 deletion src/pat/validation/validation.js
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ define([
constraints = {};
if (!name) { return; }
constraints[name.replace(/\./g, '\\.')] = {
'presence': input.getAttribute('required') ? { 'message': '^'+this.options.message.required, allowEmpty: false } : false,
'presence': input.hasAttribute('required') ? { 'message': '^'+this.options.message.required, allowEmpty: false } : false,
'email': type === 'email' ? { 'message': '^'+this.options.message.email } : false,
'numericality': type === 'number' ? true : false,
'datetime': type === 'datetime' && this.doDateCheck(input) ? { 'message': '^'+this.options.message.datetime } : false,
Expand Down