the code you are posted works well . The problem could occur when you use Value proerty in ListItem , such as :
<asp:listitem value="0" text="Select" xmlns:asp="#unknown"></asp:listitem>
then you can have Text by :
var txt=document.getElementById('<%=dropstatus.ClientID %>')
if((txt.options[txt.selectedIndex].text)=="Select")
or
if((txt.options[txt.selectedIndex].value)=="Select")
To fix the error you described in comments follow:
1.Remove the part which has server tags and place it somewhere else if you want to add dynamic controls from code behind. You can add this javascript code to the html body it will solve your problem.
2. You can use <%# instead of <%=
This changes the code block from a Response.Write code block to a databinding expression. Since <%# … % > databinding expressions aren’t code blocks, the CLR won’t complain.