diff --git a/lib/javascript-static.js b/lib/javascript-static.js index 7c459942a76..81d323d734a 100644 --- a/lib/javascript-static.js +++ b/lib/javascript-static.js @@ -86,6 +86,7 @@ function unlockoption(form,item) { function lockoptionsall(formid) { var form = document.forms[formid]; var dependons = eval(formid+'items'); + var tolock = Array(); for (var dependon in dependons) { var master = form[dependon]; for (var condition in dependons[dependon]) { @@ -104,12 +105,21 @@ function lockoptionsall(formid) { lock = master.value!=value; break; } for (var ei in dependons[dependon][condition][value]) { - var formelement = form[dependons[dependon][condition][value][ei]]; - formelement.disabled = lock; + var eltolock = dependons[dependon][condition][value][ei]; + if (tolock[eltolock] != null){ + tolock[eltolock] = + lock || tolock[eltolock]; + } else { + tolock[eltolock] = lock; + } } } } } + for (var el in tolock){ + var formelement = form[el]; + formelement.disabled = tolock[el]; + } return true; }