Advertisement
R8934

Disable selected options in form, but still post values

Aug 29th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var selectLists = document.getElementsByClassName('cSelect');
  2. var form = document.getElementById('form');
  3.  
  4. // Keep an array that hold all selected values. Default value is '0' (in my case)
  5. var disabled = ['0','0','0','0'];
  6.  
  7. // Disable selected colors, as a color cant be chosen twice
  8. function toggleSelects()
  9. {
  10.     for(var i = 0; i < selectLists.length; i++) {
  11.         if(selectLists[i].value != '0') {
  12.             disabled[i] = selectLists[i].value;
  13.         }
  14.     }
  15.     for(var j = 0; j < selectLists.length; j++) {
  16.         for(var x = 0; x < selectLists[j].options.length; x++) {
  17.             var disabledValue = false;
  18.             for(var z = 0; z < disabled.length; z++) {
  19.                 if(selectLists[j].options[x].value == disabled[z]) {
  20.                     disabledValue = true;
  21.                     selectLists[j].options[x].disabled = true;
  22.                 }
  23.             }
  24.             if(!disabledValue) {
  25.                 selectLists[j].options[x].disabled = false;
  26.             }
  27.         }
  28.     }
  29.  
  30. }
  31.  
  32. // Attach eventlisteners for disabling chosen colors on other select lists
  33. for(var i = 0; i < selectLists.length; i++) {
  34.     selectLists[i].addEventListener('change', toggleSelects);
  35. }
  36.  
  37. form.onsubmit = function(e) {
  38.  
  39.     for(var i = 0; i < selectLists.length; i++) {
  40.         for(var j = 0; j < selectLists[i].options.length; j++) {
  41.             selectLists[i].options[j].disabled = false;
  42.         }
  43.     }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement