javascript - 根据选择框选项向 div 添加 CSS 规则

标签 javascript jquery html css

我有一张纪律处分表。有 5 种类型的纪律处分、警告和严重级别。最严重的级别是暂停,它有几个额外的表字段。这些字段默认通过 CSS 隐藏。当有人选择下拉选项“暂停”时,这些字段应该可见。

这是我最近尝试解决这个问题,但它也不起作用:

<script type="text/javascript">
            $(document).ready(function () {
                var num = "suspn";
                $("#i_action option").each(function () {
                    if ($(this).val() === num) { // EDITED THIS LINE
                        sus();
                    }
                    else { // EDITED THIS LINE
                        unsus();
                    }
                });
            });
            function sus() {
                document.getElementById("susp").className += "susp_show";
            }
            function unsus() {
                document.getElementById("susp").className -= "susp_show";
            }
</script>

和 html:

<select id="i_action" name="i_action">
    <option value="verbl">Verbal Warning</option>
    <option value="1warn">1st Written Warning</option>
    <option value="2warn">2nd Written Warning</option>
    <option value="3warn">3rd Written Warning</option>
    <option value="suspn">Suspension</option>
</select>
<table class="offence" cellpadding="0" cellspacing="0">
    <tr><td>Employee Name:</td> <td><input disabled="true" style="color: #222" type="text" value="<?= $ename00 ?>" /></td></tr>
    <tr><td>Today's Date:</td> <td> <input type="text" value="<?= $today = date("m/d/y") ?> " /></td></tr>
    <tr><td>Date of Infraction:</td> <td> <input type="text" value="<?= $today = date("m/d/y") ?>" /></td></tr>
    <tr id="susp"><td>Length of suspension:</td> <td> <input type="text" value="" /></td></tr>
    <tr id="susp"><td>Suspension Start Date:</td> <td> <input type="text" value="" placeholder="MM/DD/YYYY" /></td></tr>
    <tr id="susp"><td>Suspension End Date:</td> <td> <input type="text" value="" placeholder="MM/DD/YYYY" /></td></tr>
    <tr><td>Reason For Action:</td> <td><textarea></textarea></td></tr>
    <tr><td>Employee Comments</td> <td><textarea></textarea></td></tr>
</table>

CSS:

#susp{display: none;}
.susp_show{display: table-row !important;}

最佳答案

在您的添加和删除类名 += "susp_show" 中添加一个空格。它目前正在创建类 Someclassnamesusp_show。 ps,ID 在文档中应该是唯一的,只是注意到您有 3 个 tr'3 和 id susp

$(document).ready(function () {
                
                $("#i_action").change(function(){
                 if($(this).val()=="suspn"){ 
                          
                             $('.susp').css('display','block');
                           
                       }else{
                         $('.susp').css('display','none');
                         }
                    
                });
   
            });
.susp{display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="i_action" name="i_action">
    <option value="verbl">Verbal Warning</option>
    <option value="1warn">1st Written Warning</option>
    <option value="2warn">2nd Written Warning</option>
    <option value="3warn">3rd Written Warning</option>
    <option value="suspn">Suspension</option>
</select>
<table class="offence" cellpadding="0" cellspacing="0">
    <tr><td>Employee Name:</td> <td><input disabled="true" style="color: #222" type="text" value="<?= $ename00 ?>" /></td></tr>
    <tr><td>Today's Date:</td> <td> <input type="text" value="<?= $today = date("m/d/y") ?> " /></td></tr>
    <tr><td>Date of Infraction:</td> <td> <input type="text" value="<?= $today = date("m/d/y") ?>" /></td></tr>
    <tr class="susp"><td>Length of suspension:</td> <td> <input type="text" value="" /></td></tr>
    <tr class="susp"><td>Suspension Start Date:</td> <td> <input type="text" value="" placeholder="MM/DD/YYYY" /></td></tr>
    <tr class="susp"><td>Suspension End Date:</td> <td> <input type="text" value="" placeholder="MM/DD/YYYY" /></td></tr>
    <tr><td>Reason For Action:</td> <td><textarea></textarea></td></tr>
    <tr><td>Employee Comments</td> <td><textarea></textarea></td></tr>
</table>

关于javascript - 根据选择框选项向 div 添加 CSS 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35048459/

相关文章:

html - CSS 背景图像 + 跨度图像整个 DIV 大小

javascript - 如何处理powershell中的错误 'console is undefined'?

java - 一些文本被添加到 JavaScript 的变量中

jquery - 使下拉父链接对于较小的设备可点击,并在 Bootstrap 中隐藏下拉菜单

jquery - 从函数内部的函数返回值

html - Jumbotron 背景图像未显示全 Angular

javascript - 字符串与数组原型(prototype) Javascript

javascript - 使用 Jasmine 测试数据设置是否正确

jquery - 为什么 JQuery 不更新隐藏字段

html - CSS:底部居中引导分页元素