diff --git a/app/assets/javascripts/admin-manifest.coffee b/app/assets/javascripts/admin-manifest.coffee index dd99c1932..883070a7a 100644 --- a/app/assets/javascripts/admin-manifest.coffee +++ b/app/assets/javascripts/admin-manifest.coffee @@ -8,6 +8,10 @@ #= require jquery-ui/datepicker #= require select2 #= require jquery.doubleScroll + +# Load order does matter +#= require polyfills/node_list_for_each + #= require datepicker #= require spell_check #= require admin/application diff --git a/app/assets/javascripts/polyfills/node_list_for_each.js b/app/assets/javascripts/polyfills/node_list_for_each.js new file mode 100644 index 000000000..0b5a1aabe --- /dev/null +++ b/app/assets/javascripts/polyfills/node_list_for_each.js @@ -0,0 +1,11 @@ +// Needed mainly for IE11 +// https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach + +if (window.NodeList && !NodeList.prototype.forEach) { + NodeList.prototype.forEach = function (callback, thisArg) { + thisArg = thisArg || window; + for (var i = 0; i < this.length; i++) { + callback.call(thisArg, this[i], i, this); + } + }; +} diff --git a/app/assets/javascripts/registrant-manifest.coffee b/app/assets/javascripts/registrant-manifest.coffee index 84f95374a..febc82e2b 100644 --- a/app/assets/javascripts/registrant-manifest.coffee +++ b/app/assets/javascripts/registrant-manifest.coffee @@ -4,5 +4,9 @@ #= require jquery-ui/datepicker #= require select2 #= require datepicker + +# Load order does matter +#= require polyfills/node_list_for_each + #= require spell_check #= require shared/general diff --git a/app/assets/javascripts/registrar-manifest.coffee b/app/assets/javascripts/registrar-manifest.coffee index f83d9f76e..fd0ec3ca0 100644 --- a/app/assets/javascripts/registrar-manifest.coffee +++ b/app/assets/javascripts/registrar-manifest.coffee @@ -6,6 +6,10 @@ #= require jquery-ui/datepicker #= require select2 #= require datepicker + +# Load order does matter +#= require polyfills/node_list_for_each + #= require spell_check #= require popover #= require text_field_trimmer diff --git a/app/assets/javascripts/spell_check.js b/app/assets/javascripts/spell_check.js index 7c04ab071..9645f3487 100644 --- a/app/assets/javascripts/spell_check.js +++ b/app/assets/javascripts/spell_check.js @@ -1,11 +1,13 @@ -(function() { +(function () { function disableSpellCheck() { let selector = 'input[type=text], textarea'; let textFields = document.querySelectorAll(selector); - for (let field of textFields) { - field.spellcheck = false; - } + textFields.forEach( + function (field, _currentIndex, _listObj) { + field.spellcheck = false; + } + ); } disableSpellCheck(); diff --git a/app/assets/javascripts/text_field_trimmer.js b/app/assets/javascripts/text_field_trimmer.js index 71cbc5295..4293be934 100644 --- a/app/assets/javascripts/text_field_trimmer.js +++ b/app/assets/javascripts/text_field_trimmer.js @@ -2,13 +2,15 @@ function trimTextFields() { let selector = 'input[type=text], input[type=search], input[type=email], textarea'; let textFields = document.querySelectorAll(selector); - let listener = function () { + let changeListener = function () { this.value = this.value.trim(); }; - for (let field of textFields) { - field.addEventListener('change', listener); - } + textFields.forEach( + function (field, currentIndex, listObj) { + field.addEventListener('change', changeListener); + } + ); } trimTextFields();