Merge branch 'MDL-67876_37' of https://github.com/timhunt/moodle into MOODLE_37_STABLE
This commit is contained in:
+1
-1
@@ -1 +1 @@
|
||||
define(["jquery","core/event"],function(a,b){return{enhance:function(c){var d=document.getElementById(c);a(d).on(b.Events.FORM_FIELD_VALIDATION,function(b,c){b.preventDefault();var e=a(d).closest(".form-group"),f=e.find(".form-control-feedback");"TEXTAREA"==a(d).prop("tagName")&&e.find("[contenteditable]")&&(d=e.find("[contenteditable]")),""!==c?(e.addClass("has-danger"),e.data("client-validation-error",!0),a(d).addClass("is-invalid"),a(d).attr("aria-describedby",f.attr("id")),a(d).attr("aria-invalid",!0),f.attr("tabindex",0),f.html(c),f.is(":visible")||(f.show(),f.focus())):e.data("client-validation-error")===!0&&(e.removeClass("has-danger"),e.data("client-validation-error",!1),a(d).removeClass("is-invalid"),a(d).removeAttr("aria-describedby"),a(d).attr("aria-invalid",!1),f.hide())})}}});
|
||||
define(["jquery","core/event"],function(a,b){return{enhance:function(c){var d=document.getElementById(c);if(d){a(d).on(b.Events.FORM_FIELD_VALIDATION,function(b,c){b.preventDefault();var e=a(d).closest(".form-group"),f=e.find(".form-control-feedback");"TEXTAREA"==a(d).prop("tagName")&&e.find("[contenteditable]")&&(d=e.find("[contenteditable]")),""!==c?(e.addClass("has-danger"),e.data("client-validation-error",!0),a(d).addClass("is-invalid"),a(d).attr("aria-describedby",f.attr("id")),a(d).attr("aria-invalid",!0),f.attr("tabindex",0),f.html(c),f.is(":visible")||(f.show(),f.focus())):e.data("client-validation-error")===!0&&(e.removeClass("has-danger"),e.data("client-validation-error",!1),a(d).removeClass("is-invalid"),a(d).removeAttr("aria-describedby"),a(d).attr("aria-invalid",!1),f.hide())});var e=d.closest("form");"boostFormErrorsEnhanced"in e.dataset||(e.addEventListener("submit",function(){var b=a(".form-control-feedback:visible");b.length&&b[0].focus()}),e.dataset.boostFormErrorsEnhanced=1)}}}});
|
||||
@@ -25,6 +25,12 @@ define(['jquery', 'core/event'], function($, Event) {
|
||||
return {
|
||||
enhance: function(elementid) {
|
||||
var element = document.getElementById(elementid);
|
||||
if (!element) {
|
||||
// Some elements (e.g. static) don't have a form field.
|
||||
// Hence there is no validation. So, no setup required here.
|
||||
return;
|
||||
}
|
||||
|
||||
$(element).on(Event.Events.FORM_FIELD_VALIDATION, function(event, msg) {
|
||||
event.preventDefault();
|
||||
var parent = $(element).closest('.form-group');
|
||||
@@ -44,6 +50,7 @@ define(['jquery', 'core/event'], function($, Event) {
|
||||
feedback.html(msg);
|
||||
|
||||
// Only display and focus when the error was not already visible.
|
||||
// This is so that, when tabbing around the form, you don't get stuck.
|
||||
if (!feedback.is(':visible')) {
|
||||
feedback.show();
|
||||
feedback.focus();
|
||||
@@ -60,6 +67,17 @@ define(['jquery', 'core/event'], function($, Event) {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var form = element.closest('form');
|
||||
if (!('boostFormErrorsEnhanced' in form.dataset)) {
|
||||
form.addEventListener('submit', function() {
|
||||
var visibleError = $('.form-control-feedback:visible');
|
||||
if (visibleError.length) {
|
||||
visibleError[0].focus();
|
||||
}
|
||||
});
|
||||
form.dataset.boostFormErrorsEnhanced = 1;
|
||||
}
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user