Skip to content

Commit 6e2232b

Browse files
author
Tom Hanoldt
committed
fix error hint
1 parent e04e886 commit 6e2232b

File tree

2 files changed

+29
-7
lines changed

2 files changed

+29
-7
lines changed

spec/hint.spec.coffee

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,21 @@ describe 'jquery.input.validator', ->
6767
expect($label.length).toBe 1
6868
expect($label.text()).toBe 'hint text'
6969
)
70+
71+
it 'changes the message', ->
72+
elements = '<div>'
73+
elements+= '<input type="email" minlength="3" value="ab">'
74+
elements+= '</div>'
75+
appendAndCallback(elements, ($elements) ->
76+
$element = $('input', $elements).first()
77+
78+
validator.validateElement($element)
79+
80+
$label = $(".#{validator.config.classes.hint}", $elements)
81+
expect($label.text()).toBe validator.config.messages.minlength
82+
83+
84+
$element.val('not mor minlength')
85+
validator.validateElement($element)
86+
expect($label.text()).toBe validator.config.messages.email
87+
)

src/input.validator.coffee

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,19 @@ class @InputValidator
7979
onReset: null
8080
onBuildErrorElement: (validator, $element, value, errors) ->
8181
error = errors[0]
82-
$hint = $element.parent().find(validator.config.classes.hint)
82+
$hint = $element.data('inputvalidator-hint')
8383

84-
unless $hint.length
85-
$hint = $("<label class='#{validator.config.classes.hint}' " +
86-
"for='#{$element.attr('id')}'>" +
87-
error.message +
88-
"</label>")
84+
if $hint
85+
$hint.html(error.message)
86+
return
87+
88+
$hint = $("<label class='#{validator.config.classes.hint}' " +
89+
"for='#{$element.attr('id')}'>" +
90+
error.message +
91+
"</label>")
8992

9093
$element.data('inputvalidator-hint', $hint)
91-
$element.after($hint)
94+
.after($hint)
9295

9396
onValidIntern: (validator, $element, value, errors) ->
9497
classes = validator.config.classes
@@ -110,6 +113,7 @@ class @InputValidator
110113
classes = validator.config.classes
111114
$element.removeClass("#{classes.error} #{classes.valid}")
112115
$($element.data('inputvalidator-hint')).remove()
116+
$element.data('inputvalidator-hint', undefined)
113117
validator.config.handler.onReset?(validator, $element)
114118
validator.config.handler.onValid?(validator, $element, value, errors)
115119

0 commit comments

Comments
 (0)