Merge remote-tracking branch 'upstream/master' into feature/strict-mode

Conflicts:
	README.md
This commit is contained in:
orangemug 2015-05-07 10:07:00 +01:00
commit f382307a17
4 changed files with 56 additions and 2 deletions

View File

@ -203,9 +203,13 @@ schema.properties.notIn = function(value, badwords)
}
```
## Browser usage
You can use it in the browser by using [browserify](http://browserify.org/), however if that's too much work just use <https://wzrd.in/>. There is also an example <examples/cdn.html>
# ideas
- make it work in the browser for client side validation
- dependency property making one parameters existance depend on another
- more types (phone numbers, credit card, ip address)
- more filters (camelcase, encode/unencode)

30
examples/cdn.html Normal file
View File

@ -0,0 +1,30 @@
<!DOCTYPE html>
<html>
<head>
<title>https://wzrd.in - schemajs example</title>
</head>
<body>
<p>See the console and view the source for details</p>
<script type="text/javascript" src="https://wzrd.in/standalone/schemajs@latest"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
// Example from the README
// NOTE: You'll have to use `window.schemajs`
var model = window.schemajs.create(
{
name: {type:"string", filters:"trim", properties:{max:255}, required:true},
email: {type:"email", filters:"trim", required:true},
wins: {type:"int", filters:["trim", "toInt"], default:0},
average: {type:"float", filters:["trim", "toFloat"], default:0}
});
var form = model.validate({name:" your name ", email:" name@example.com "});
console.log(form);
});
</script>
</body>
</html>

View File

@ -265,7 +265,7 @@ function isValueEmpty(value) {
if (_.isUndefined(value)) {
return true;
}
var canUseIsEmpty = _.isString(value) || _.isArray(value) || _.isObject(value) || false;
var canUseIsEmpty = _.isString(value) || _.isArray(value) || (_.isObject(value) && !_.isDate(value)) || false;
if (canUseIsEmpty) {
return _.isEmpty(value);
}

View File

@ -0,0 +1,20 @@
describe("bugs", function() {
/*jshint expr:true*/
var schemajs = (typeof window === 'undefined') ? require('../schema') : window.schema;
var expect = (typeof window === 'undefined') ? require('chai').expect : window.chai.expect;
// <https://github.com/eleith/schemajs/pull/13>
it("Dates defaulting when not empty (#13)", function() {
var date1 = new Date;
var date2 = new Date(1985, 12);
var schema = schemajs.create({
dateTime: {type:'date', 'default': date1}
});
var input1 = schema.validate({});
var input2 = schema.validate({dateTime: date2});
expect(input1.data.dateTime).to.equal(date1);
expect(input2.data.dateTime).to.equal(date2);
});
});