From 94dfd8ab9d61a969453fdd3b9be14b58e1576816 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Sun, 27 Mar 2011 11:14:12 -0400 Subject: [PATCH] - TinyMCE 3.4.1 --- program/js/tiny_mce/utils/validate.js | 36 ++++++++++++++++++++++++++++++++++-- 1 files changed, 34 insertions(+), 2 deletions(-) diff --git a/program/js/tiny_mce/utils/validate.js b/program/js/tiny_mce/utils/validate.js index a6fcf97..2c4dc5c 100644 --- a/program/js/tiny_mce/utils/validate.js +++ b/program/js/tiny_mce/utils/validate.js @@ -96,8 +96,10 @@ var i, nl, s = this.settings, c = 0; nl = this.tags(f, 'label'); - for (i=0; i<nl.length; i++) + for (i=0; i<nl.length; i++) { this.removeClass(nl[i], s.invalid_cls); + nl[i].setAttribute('aria-invalid', false); + } c += this.validateElms(f, 'input'); c += this.validateElms(f, 'select'); @@ -109,6 +111,33 @@ invalidate : function(n) { this.mark(n.form, n); }, + + getErrorMessages : function(f) { + var nl, i, s = this.settings, field, msg, values, messages = [], ed = tinyMCEPopup.editor; + nl = this.tags(f, "label"); + for (i=0; i<nl.length; i++) { + if (this.hasClass(nl[i], s.invalid_cls)) { + field = document.getElementById(nl[i].getAttribute("for")); + values = { field: nl[i].textContent }; + if (this.hasClass(field, s.min_cls, true)) { + message = ed.getLang('invalid_data_min'); + values.min = this.getNum(field, s.min_cls); + } else if (this.hasClass(field, s.number_cls)) { + message = ed.getLang('invalid_data_number'); + } else if (this.hasClass(field, s.size_cls)) { + message = ed.getLang('invalid_data_size'); + } else { + message = ed.getLang('invalid_data'); + } + + message = message.replace(/{\#([^}]+)\}/g, function(a, b) { + return values[b] || '{#' + b + '}'; + }); + messages.push(message); + } + } + return messages; + }, reset : function(e) { var t = ['label', 'input', 'select', 'textarea']; @@ -119,8 +148,10 @@ for (i=0; i<t.length; i++) { nl = this.tags(e.form ? e.form : e, t[i]); - for (j=0; j<nl.length; j++) + for (j=0; j<nl.length; j++) { this.removeClass(nl[j], s.invalid_cls); + nl[j].setAttribute('aria-invalid', false); + } } }, @@ -201,6 +232,7 @@ var s = this.settings; this.addClass(n, s.invalid_cls); + n.setAttribute('aria-invalid', 'true'); this.markLabels(f, n, s.invalid_cls); return false; -- Gitblit v1.9.1