diff --git a/src/rules.js b/src/rules.js index 14e3fb67..762c385c 100644 --- a/src/rules.js +++ b/src/rules.js @@ -24,7 +24,7 @@ ko.validation.rules['required'] = { validator: function (val, required) { var testVal; - if (val === undefined || val === null) { + if (val === undefined || val === null || val === false) { return !required; } diff --git a/test/rules-tests.js b/test/rules-tests.js index 3357b27d..e04017a8 100644 --- a/test/rules-tests.js +++ b/test/rules-tests.js @@ -16,6 +16,11 @@ QUnit.test('Object is NOT Valid and isValid returns False', function(assert) { assert.violatesRequiredRule(testObj, ''); }); +QUnit.test('Issue #598 - "false" is NOT valid and isValid returns false', function(assert) { + var testObj = ko.observable(false).extend({ required: true }); + assert.violatesRequiredRule(testObj, false); +}); + QUnit.test('Zero is a valid value for required', function(assert) { var testObj = ko.observable(0).extend({ required: true }); assert.observableIsValid(testObj, 0);