From 7ad5967e6d02f50a53dd72d106001cf00b7c344a Mon Sep 17 00:00:00 2001 From: Kai Dorschner Date: Thu, 7 Jan 2016 12:05:54 +0100 Subject: [PATCH] Fix #598 by adding a boolean val typecheck. --- src/rules.js | 2 +- test/rules-tests.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) 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);