如果满足条件,Selectbox不允许用户选择其他选项

时间:2015-08-04 08:21:05

标签: javascript selection

我是否知道如果符合条件,如何使选择框无法选择其他选项?未禁用的功能,就像从selectbox中选择项目一样,如果满足脚本条件,它将自动恢复为之前选择的选项。

<%
 Vector vTable = (Vector) session.getAttribute("TABLE_CERT");  
%>
<script>
function rateStatus()
{
    if(<%=vTable.size()%> > 0)
    {
        //what condition should i put in here??
    }
}
</script>
 <select name="RATE_TYPE" onChange="rateStatus()" >
               <option value="T" <% if (RATE_TYPE.equals("T") ){out.println("selected");} %>> Tariff </option>
               <option value="SE" <% if (RATE_TYPE.equals("SE") ){out.println("selected");} %>> Self </option>
               <option value="SP" <% if (RATE_TYPE.equals("SP") ){out.println("selected");} %>> Special </option>
 </select>

2 个答案:

答案 0 :(得分:0)

您可以拦截onChange事件(您使用rateStatus处理它)并在需要时恢复.defaultValue

<script>
function rateStatus(el)
{
    if(<%=vTable.size()%> > 0)
    {
        el.value = el.defaultValue;
    }
}
</script>
<select name="RATE_TYPE" onChange="rateStatus(this)" >
               <option value="T" <% if (RATE_TYPE.equals("T") ){out.println("selected");} %>> Tariff </option>
               <option value="SE" <% if (RATE_TYPE.equals("SE") ){out.println("selected");} %>> Self </option>
               <option value="SP" <% if (RATE_TYPE.equals("SP") ){out.println("selected");} %>> Special </option>
 </select>

答案 1 :(得分:0)

  

未禁用功能,就像从selectbox中选择项目时一样   脚本条件得到满足后,它会自动恢复为   之前选择的选项。

根据您的问题文本,让我添加另一个答案,这可能是您正在寻找的行为:

$("#selectBox").attr('onfocus', 'this.defaultIndex=this.selectedIndex;');
$("#selectBox").attr('onchange', 'this.selectedIndex=this.defaultIndex');

见这里:http://jsfiddle.net/ddan/jvu5w6zn/3/

如果条件满足,您选择的任何内容都会跳回原始选择。