【问题标题】:Selectbox not allow user to select other option if condition met如果条件满足,选择框不允许用户选择其他选项
【发布时间】:2015-08-04 08:21:04
【问题描述】:

如果满足条件,我可以知道如何使选择框无法选择其他选项吗?未禁用功能,就像从选择框中选择项目时,如果满足脚本条件,它会自动恢复到之前选择的选项。

<%
 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>

【问题讨论】:

标签: javascript selection


【解决方案1】:

您可以拦截 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>

【讨论】:

  • 嗨,对不起,你能指路吗?对于脚本部分?
  • 试试我的答案的修改版
【解决方案2】:

未禁用功能,就像从选择框中选择项目时一样,如果 脚本条件满足,它会自动恢复到 上一个选择的选项。

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

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

请看这里:http://jsfiddle.net/ddan/jvu5w6zn/3/

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

【讨论】:

  • @user3835327 这是您正在寻找的解决方案吗?
猜你喜欢
  • 2012-06-13
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
  • 2017-10-22
  • 2019-04-24
  • 2017-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多