oxjs/source/Ox.UI/js/Form/Ox.FormItem.js

53 lines
1.3 KiB
JavaScript

'use strict';
/*@
Ox.FormItem <f:Ox.Element> FormItem Element, wrap form element with an error message
([options[, self]]) -> <f> FormItem Element
options <o> Options object
element <o|null> element
error <s> error message
self <o> Shared private variable
@*/
Ox.FormItem = function(options, self) {
self = self || {};
var that = Ox.Element({}, self)
.defaults({
element: null,
error: '',
})
.options(options || {})
.addClass('OxFormItem');
self.description = self.options.element.options('description');
if (self.description) {
$('<div>')
.addClass('OxFormDescription')
.html(self.description)
.appendTo(that);
}
that.append(self.options.element);
self.$message = Ox.Element()
.addClass('OxFormMessage')
.appendTo(that);
/*@
setMessage <f> set message
(message) -> <u> set message
@*/
that.setMessage = function(message) {
self.$message.html(message)[message !== '' ? 'show' : 'hide']();
};
/*@
value <f> get value
() -> <s> get value of wrapped element
@*/
that.value = function() {
return self.options.element.value();
};
return that;
};