使用类</option>隐藏<option>

时间:2013-01-22 19:43:07

标签: javascript html css forms option

我确信这很简单。但它对我不起作用。

我写了一个表单,允许用户使用标签从列表中选择一个月:

<select> <option>

onchange删除了.gone之日的课程SELECT,从而显示了该列表。 onchanve .gone年级INPUT中的课程.gone被移除,从而显示年份。

我使用PHP将year的值设置为当前年份。我想将月份和addClass OPTION的值带到第31天的.gone标签(2月29日和30日),以便2月30日等不是一个选项。我将%年份的值减去4 == 0来检查闰年,然后不是addClass .gone到2月29日。基本日期选择表格。

问题:当我将课程OPTION添加到.gone {display:none;} 时,它仍会显示。我以为这只是我忘记了html的一些基本原理。然而,我无法弄明白。

CSS:

.hidden {visibility:hidden;}

我也可以用这个:

<html>
  <head>
     <link to css styles>

    <script language="JavaScript" type="text/javascript">
       function showDay() {

           $("#day").removeClass("gone")
       }

       function showYear() {

           $("#year").removeClass("gone")
       }
    </script>


  </head>
  <body>
      <table>
         <tr>
         <td>
           <select id="month" onchange="showDay();">
              <option>January</option>
              <option>more months...yada...yada</option>
              <option>December</option>
           </select>
         </td>
         <td>
           <select class="gone" id="day" onchange="showYear();">
              <option></option>
              <option>1</option>
              <option>2</option>
              <option>more days</option>
              <option class="gone">31</option>
           </select>
         </td>
         <td>
              <input class="gone" type="text"  size="5" name="year" id="year" 
               value="<?php echo date("Y"); ?>"/>
         </td>
         </tr>
      </table>
  </body>
</html>

但仍显示空格,所以我没有使用它。

HTML:

.gone

onchange javascript和php正是我想要的。我没有费心编写任何脚本来使日期显示或消失,因为只是将OPTION类放在function disableElement() { var sel=document.getElementById("day") sel.options[30].disabled=true; sel.options[31].disabled=true; } 标记中不起作用。有没有办法让它隐藏或不可选择?一旦我弄清楚了,我会编写脚本,以便根据月份和年份实现。

感谢您的帮助!

UPDATE !!!

根据收到的答案。我将禁用我不想使用javascript选择的日期。从w3schools.com我得到了一个示例脚本,我稍微修改了一下,并设置为从SELECT月调用onchange。

{{1}}

完美无缺。现在第30天和第31天都不可选!

2 个答案:

答案 0 :(得分:4)

  

问题:当我将类.gone添加到OPTION时。它仍然显示。我以为这只是我忘记了html的一些基本原理。然而,我无法弄明白。

不,<option>只是不支持通过CSS设置样式。可以是disabled,也可以是remove it from the DOM entirely

答案 1 :(得分:1)

如果您将disabled属性添加到该选项,则会将其禁用,使其无法选择

<option disabled>Value</option>

示例:http://jsfiddle.net/BCk8m/