diff --git a/core/src/main/resources/lib/form/confirm.js b/core/src/main/resources/lib/form/confirm.js index d5948c3aa28c742ffb8d0cd3ae4b3883a4efba09..64f40eb26717c77113423101eeb4a2f839a82617 100644 --- a/core/src/main/resources/lib/form/confirm.js +++ b/core/src/main/resources/lib/form/confirm.js @@ -33,9 +33,6 @@ } function initConfirm() { - // Timeout is needed since some events get sent on page load for some reason. - // Shouldn't hurt anything for this to only start monitoring events after a few millis;. - setTimeout(function() { var configForm = document.getElementsByName("config"); if (configForm.length > 0) { configForm = configForm[0] @@ -78,7 +75,6 @@ for ( var i = 0; i < inputs.length; i++) { $(inputs[i]).on('input', confirm); } - }, 100); } window.onbeforeunload = confirmExit; diff --git a/core/src/main/resources/lib/form/select/select.js b/core/src/main/resources/lib/form/select/select.js index 6ea7a1e4c6796413c3a3e4233f70c0db479df9d3..0b7ce9b2c6f14e6c703a68b8258e7bdd0880e90d 100644 --- a/core/src/main/resources/lib/form/select/select.js +++ b/core/src/main/resources/lib/form/select/select.js @@ -41,6 +41,19 @@ function updateListBox(listBox,url,config) { } Behaviour.specify("SELECT.select", 'select', 1000, function(e) { + + function hasChanged(selectEl, originalValue) { + var firstValue = selectEl.options[0].value; + var selectedValue = selectEl.value; + if (originalValue == "" && selectedValue == firstValue) { + // There was no value pre-selected but after the call to updateListBox the first value is selected by + // default. This must not be considered a change. + return false; + } else { + return originalValue != selectedValue; + } + }; + // controls that this SELECT box depends on refillOnChange(e,function(params) { var value = e.value; @@ -60,7 +73,9 @@ Behaviour.specify("SELECT.select", 'select', 1000, function(e) { fireEvent(e,"filled"); // let other interested parties know that the items have changed // if the update changed the current selection, others listening to this control needs to be notified. - if (e.value!=value) fireEvent(e,"change"); + if (hasChanged(e, value)) { + fireEvent(e,"change"); + } } }); });