diff --git a/src/assets/netteForms.js b/src/assets/netteForms.js index 4604394dc..36be81ea4 100644 --- a/src/assets/netteForms.js +++ b/src/assets/netteForms.js @@ -127,6 +127,7 @@ Nette.validateControl = function(elem, rules, onlyCheck, value) { if (rule.condition && success) { if (!Nette.validateControl(elem, rule.rules, onlyCheck, value)) { + Nette.markControlInvalid(elem); return false; } } else if (!rule.condition && !success) { @@ -140,13 +141,35 @@ Nette.validateControl = function(elem, rules, onlyCheck, value) { }); Nette.addError(curElem, message); } + Nette.markControlInvalid(elem); return false; } } + Nette.markControlValid(elem); return true; }; +Nette.markControlValid = function(elem) { + Nette.switchClass(elem, 'nette-control-invalid', 'nette-control-valid'); +}; + + +Nette.markControlInvalid = function(elem) { + Nette.switchClass(elem, 'nette-control-valid', 'nette-control-invalid'); +}; + + +Nette.switchClass = function(elem, remove, add) { + if (typeof elem.classList === 'undefined') { // not supported in IE < 10 , Opera Mini 8 + return; + } + + elem.classList.remove(remove); + elem.classList.add(add); +}; + + /** * Validates whole form. */