Skip to content

Commit cf0f153

Browse files
author
Tom Hanoldt
committed
refactor onBuildErrorHint
1 parent 6595916 commit cf0f153

File tree

5 files changed

+34
-43
lines changed

5 files changed

+34
-43
lines changed

README.md

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ errors = validator.validateElement('<input type="text" data-rule-decimal="true">
4242
errors = validator.validateElement('<input type="text" data-rule-pattern="true" pattern="blub[\\d*]" value="blub23" >')
4343
errors = validator.validateElement('<input type="text" data-has-class="hello" class="hello">')
4444

45-
errors = validator.validateElement('<input type="text" required data-msg-required="required">')
45+
errors = validator.validateElement('<input type="text" required data-msg-required="required!">')
4646

4747
// TODO: write docs
4848
```
@@ -127,20 +127,8 @@ It also exposes the class `InputValidator` for manual instantiating.
127127
onInvalid: null
128128
onReset: null
129129
onBuildErrorElement: (validator, $element, value, errors) ->
130-
error = errors[0]
131-
$hint = $element.data('inputvalidator-hint')
132-
133-
if $hint
134-
$hint.html(error.message)
135-
return
136-
137-
$hint = $("<label class='#{validator.config.classes.hint}' " +
138-
"for='#{$element.attr('id')}'>" +
139-
error.message +
140-
"</label>")
141-
142-
$element.data('inputvalidator-hint', $hint)
143-
.after($hint)
130+
$("<label class='#{validator.config.classes.hint}' " +
131+
"for='#{$element.attr('id')}'></label>")
144132

145133
```
146134

@@ -171,6 +159,9 @@ It also exposes the class `InputValidator` for manual instantiating.
171159
[Tom Hanoldt](https://www.tomhanoldt.info)
172160

173161
## Changelog
162+
### WIP: 1.0.3
163+
* refactor `onBuildErrorHint`
164+
174165
### 1.0.2
175166
* fix error hint
176167
* change rule ordering

dist/jquery.input.validator.js

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -101,16 +101,18 @@
101101
onValid: null,
102102
onInvalid: null,
103103
onReset: null,
104-
onBuildErrorElement: function(validator, $element, value, errors) {
104+
onBuildErrorHint: function(validator, $element, value, errors) {
105+
return $(("<label class='" + validator.config.classes.hint + "' ") + ("for='" + ($element.attr('id')) + "'></label>"));
106+
},
107+
onBuildErrorHintIntern: function(validator, $element, value, errors) {
105108
var $hint, error;
106109
error = errors[0];
107110
$hint = $element.data('inputvalidator-hint');
108-
if ($hint) {
109-
$hint.html(error.message);
110-
return;
111+
if (!$hint) {
112+
$hint = validator.config.handler.onBuildErrorHint(validator, $element, value, errors);
113+
$element.data('inputvalidator-hint', $hint).after($hint);
111114
}
112-
$hint = $(("<label class='" + validator.config.classes.hint + "' ") + ("for='" + ($element.attr('id')) + "'>") + error.message + "</label>");
113-
return $element.data('inputvalidator-hint', $hint).after($hint);
115+
return $hint.html(error.message);
114116
},
115117
onValidIntern: function(validator, $element, value, errors) {
116118
var classes;
@@ -119,13 +121,11 @@
119121
return $element.removeClass(classes.error).addClass(classes.valid);
120122
},
121123
onInvalidIntern: function(validator, $element, value, errors) {
122-
var base, base1, classes;
124+
var base, classes;
123125
classes = validator.config.classes;
124126
$element.removeClass(classes.valid).addClass(classes.error);
125-
if (typeof (base = validator.config.handler).onBuildErrorElement === "function") {
126-
base.onBuildErrorElement(validator, $element, value, errors);
127-
}
128-
return typeof (base1 = validator.config.handler).onInvalid === "function" ? base1.onInvalid(validator, $element, value, errors) : void 0;
127+
validator.config.handler.onBuildErrorHintIntern(validator, $element, value, errors);
128+
return typeof (base = validator.config.handler).onInvalid === "function" ? base.onInvalid(validator, $element, value, errors) : void 0;
129129
},
130130
onResetIntern: function(validator, $element) {
131131
var base, base1, classes;
@@ -146,7 +146,7 @@
146146
if (config == null) {
147147
config = {};
148148
}
149-
this.getMessage = bind(this.getMessage, this);
149+
this.messageFor = bind(this.messageFor, this);
150150
this.elements = bind(this.elements, this);
151151
this.resetElement = bind(this.resetElement, this);
152152
this.reset = bind(this.reset, this);
@@ -204,8 +204,7 @@
204204
if (this.config.validateOnClick) {
205205
return $elements.click((function(_this) {
206206
return function(e) {
207-
var errors;
208-
return errors = _this.validateElement(e.target);
207+
return _this.validateElement(e.target);
209208
};
210209
})(this));
211210
}
@@ -236,7 +235,7 @@
236235
rule = ref[name];
237236
if (!rule(this, $element, value)) {
238237
errors.push({
239-
message: $element.data("msg-" + name) || this.getMessage(name),
238+
message: $element.data("msg-" + name) || this.messageFor(name),
240239
element: $element,
241240
rule: name,
242241
value: value
@@ -277,7 +276,7 @@
277276
return $(this.config.selectors.elements, context).not(this.config.selectors.ignore);
278277
};
279278

280-
InputValidator.prototype.getMessage = function(name) {
279+
InputValidator.prototype.messageFor = function(name) {
281280
var ref;
282281
if (!((ref = this.config.messages) != null ? ref[name] : void 0)) {
283282
return this.config.messages.generic;

dist/jquery.input.validator.js.gz

-1 Bytes
Binary file not shown.

dist/jquery.input.validator.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/input.validator.coffee

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -77,21 +77,22 @@ class @InputValidator
7777
onValid: null
7878
onInvalid: null
7979
onReset: null
80-
onBuildErrorElement: (validator, $element, value, errors) ->
80+
onBuildErrorHint: (validator, $element, value, errors) ->
81+
$("<label class='#{validator.config.classes.hint}' " +
82+
"for='#{$element.attr('id')}'></label>")
83+
84+
onBuildErrorHintIntern: (validator, $element, value, errors) ->
8185
error = errors[0]
8286
$hint = $element.data('inputvalidator-hint')
8387

84-
if $hint
85-
$hint.html(error.message)
86-
return
88+
unless $hint
89+
$hint = validator.config.handler.onBuildErrorHint(validator,
90+
$element, value, errors)
8791

88-
$hint = $("<label class='#{validator.config.classes.hint}' " +
89-
"for='#{$element.attr('id')}'>" +
90-
error.message +
91-
"</label>")
92+
$element.data('inputvalidator-hint', $hint)
93+
.after($hint)
9294

93-
$element.data('inputvalidator-hint', $hint)
94-
.after($hint)
95+
$hint.html(error.message)
9596

9697
onValidIntern: (validator, $element, value, errors) ->
9798
classes = validator.config.classes
@@ -104,7 +105,7 @@ class @InputValidator
104105
$element.removeClass(classes.valid)
105106
.addClass(classes.error)
106107

107-
validator.config.handler.onBuildErrorElement?(
108+
validator.config.handler.onBuildErrorHintIntern(
108109
validator, $element, value, errors)
109110

110111
validator.config.handler.onInvalid?(validator, $element, value, errors)

0 commit comments

Comments
 (0)