diff options
author | Bryce Johnson <bryce@gitlab.com> | 2016-09-28 12:59:58 +0200 |
---|---|---|
committer | Bryce Johnson <bryce@gitlab.com> | 2016-10-15 08:28:52 +0200 |
commit | 503dcacaa42bc5870a87b579009c53c991b03c4e (patch) | |
tree | 34080bd032109ae8127b9c1f78bd37536e51803a /app | |
parent | 80cbc9838eae8836a9bf85bac1dca7e965d1d77d (diff) | |
download | gitlab-ce-503dcacaa42bc5870a87b579009c53c991b03c4e.tar.gz |
Properly implement focus on first invalid.
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/gl_field_errors.js.es6 | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/app/assets/javascripts/gl_field_errors.js.es6 b/app/assets/javascripts/gl_field_errors.js.es6 index e1de7f78efc..91c25047f7b 100644 --- a/app/assets/javascripts/gl_field_errors.js.es6 +++ b/app/assets/javascripts/gl_field_errors.js.es6 @@ -53,17 +53,16 @@ return this.setInvalidState(); } - this.form.focusOnFirstInvalid.apply(this.form); } handleInvalidInput(event) { event.preventDefault(); - + const currentValue = this.inputElement.val(); this.state.valid = false; - this.state.empty = false; + this.state.empty = currentValue === ''; this.renderValidity(); - + this.form.focusOnFirstInvalid.apply(this.form); // For UX, wait til after first invalid submission to check each keyup this.inputElement.off('keyup.field_validator') .on('keyup.field_validator', this.updateValidityState.bind(this)); @@ -76,7 +75,7 @@ updateValidityState() { const inputVal = this.inputElement.val(); - this.state.empty = !!inputVal.length; + this.state.empty = !inputVal.length; this.state.valid = this.getInputValidity(); this.renderValidity(); } @@ -105,10 +104,6 @@ this.inputElement.siblings('p').hide(); this.fieldErrorElement.hide(); } - - checkFieldValidity(target) { - return target.validity.valid; - } } const customValidationFlag = 'no-gl-field-errors'; @@ -144,8 +139,8 @@ } focusOnFirstInvalid () { - const firstInvalid = this.state.inputs.find((input) => !input.inputDomElement.validity.valid); - $(firstInvalid).focus(); + const firstInvalid = this.state.inputs.filter((input) => !input.inputDomElement.validity.valid)[0]; + firstInvalid.inputElement.focus(); } } |