Remove Options from a Combo Box Using JavaScript

From SmartWiki
Revision as of 11:53, 30 October 2009 by Julia Decker (talk | contribs)

Jump to: navigation, search

You can use a JavaScript function to modify the options available in a pull-down box on the page.

Remove One or More Options

The following example removes two different Types available for new Level 2 records (useful if you need to define complex criteria for what type of Level 2 records can be created):

function RemoveTypes()
{
var i=0;
var frm = document.forms[0];
// at Level 1 use document.form1 instead of document.forms[0]


if (frm.eventid.value==0)
// Note: this loop starts at the bottom to avoid skipping any due to re-indexing as they are removed.
for (i=frm.eventtype.options.length-1;i>=0;i--)
{
   if (frm.eventtype.options[i].text=='FirstType' || frm.eventtype.options[i].text=='SecondType') 
      frm.eventtype.options[i]=null;
}
}
}
RemoveTypes();


If you wish to control this by role (for example if you want a role to be able to view existing Level 2 records of a given Type, but not create them...)

Include this in the variable section at the top of the script:

var myrolelist="@me.rolelist@";

And replace or include the following in the if logic section:

if (myrolelist.indexOf(",1234,")>=0)
Note that you must test for greater than or equal to 0. If the role is the first listed in the user's role list it will return a 0 rather than a 1 because of the preceding comma.


To Remove All Options Except the Selected

  • The following script will prevent users from changing the Level 2 Type once the record has been saved:
  // For existing Types remove all options from the Type field (except the selected) so it can't be changed
  if (frm.eventid.value!=0)
  {
     for (i=frm.eventtype.options.length-1;i>=0;i--)
     {
        if (frm.eventtype.options[i].value!=frm.eventtype.value) 
         frm.eventtype.options[i]=null;
     }
  }


See Also