SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a drop down box form field (with values level1,level2) in SharePoint list. How can I lock the drop down box selection in the edit form.aspx whenever the condition is level2?

share|improve this question

Out of the box, there is no way to lock a drop-down.

The only solution I see is to attach a custom script to the page that will delete the level1 option as soon as level2 is selected. Then there's no way back.

Note that it only locks the edit form (your question). Users would still be able to use a datasheet view, Web services or other to force the value to level1.

share|improve this answer

You can do something similar to what you want, if you use an InfoPath form as new/edit page for your list.

Here is an example on how to make a custom InfoPath new/edit form for your list.

See here how to customize list forms with InfoPath And here

Havent looked into locking dropdowns in InfoPath, but this should get you going so you can experiment with that part of it.

Another option is to create a custom ASP.NET new/edit form
Here is an example on how to do this

share|improve this answer
Thanks Anders! for pointing me to the customizated list forms(aspx)...this is wat i was looking for some time ago – spStacker Jan 30 '12 at 17:39

Is this a cascading thing that SPServices can help with? The SPCascadeDropdowns function helps you tie two columns together, making the available options in the second depend on the choice for the first.

If this isn't the case, then some custom script to disable to select is another possibility.

share|improve this answer

as suggested by Mark, i used custom script to disable the dropdown based on condition

var getselectTag = document.getElementsByTagName('select');

if(getselectTag[j].title =='Support Level')
 if(getselectTag[j].value =='2nd Level')
getselectTag[j].disabled = true;

the for loop takes time to execute .. any suggestion on how to replace this javascript by jquery?

share|improve this answer
Replacing JavaScript by jQuery won't remove the loop... – Christophe Jan 30 '12 at 19:11
You can do a tighter selection with jQuery, but you probably can also do so with plain JavaScript. You're finding all of the selects and looing through them to find the right one (which ought to be fast). – Marc D Anderson Jan 30 '12 at 20:25
Well to optimize that loop a bit, just break out of the loop after "getselectTag[j].disabled = true;" – Jussi Palo Jan 30 '12 at 20:38

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.