/* This file is part of Syj, Copyright (c) 2010 Arnaud Renevier,
and is published under the AGPL license. */
+Element.addMethods(['input', 'textarea'], {
+ check: function(control, callback, errorMessage) {
+ if (callback.call(control)) {
+ return true;
+ }
+ control.insert({
+ after: new Element("div", {className: 'error'}).update(errorMessage)
+ });
+ return false;
+ }
+});
+
Element.addMethods('form', {
focus: function(form) {
var tofocus, error;
tofocus = form.down('input:not([readonly],[disabled]),textarea:not([readonly][disabled])');
}
if (tofocus) {
- if (error && (typeof tofocus.highlight == "function")) {
+ if (error && (typeof tofocus.highlight === "function")) {
tofocus.highlight('#F08080');
}
tofocus.focus();
tofocus.select();
}
- }
-});
+ },
-Element.addMethods(['input', 'textarea'], {
- check: function(control, callback, errorMessage) {
- if (callback.call(control)) {
- return true;
- }
- control.insert({
- after: new Element("div", {className: 'error'}).update(errorMessage)
+ checkEmptyElements: function(form, errorMessage) {
+ var results = [];
+ form.select('.required').each(function(elt) {
+ var id = elt.getAttribute('for'), control = $(id);
+ if (!control) {
+ return;
+ }
+ if (!control.check(function() {
+ return !this.value.strip().empty();
+ }, errorMessage)) {
+ results.push(control);
+ }
});
- return false;
+ return results;
}
+
});