jquery - 验证后更改 <td> 背景颜色

标签 jquery html css

我在表格中有一个表格。我想更改 <td>表单验证错误后的背景颜色。我设法通过在每个 <td> 上插入一个 if 条件来做到这一点样式属性。有没有捷径。

例如,可以使用 jquery。以下是我的代码风格:

<td style="<?php echo (!empty($msgError) && empty($purchase_mode)) ? 'background-color: rgba(244, 67, 54, 0.33);' : ''; ?> "> 
    <input type="checkbox" name="purchase_mode" value="DIRECT"/>Direct
</td>
<td style="<?php echo (!empty($msgError) && empty($purchase_category)) ? 'background-color: rgba(244, 67, 54, 0.33);' : ''; ?> ">
    <input type="checkbox" name="description" value="SUPPLY"/>SUPPLY
</td>

我尝试使用 jquery 但它会改变所有 <td> table 上的背景颜色:

<?php if (empty($purchase_category) || empty($purchase_mode)) { ?>
    <script>
        $(document).ready(function(){
            $("td").css("background-color", "red");
        });
    </script>';
<?php } ?>

最佳答案

您可以创建一个包含所有无效字段名称属性的字符串数组,然后它会注意为这些字段设置背景颜色:

function ValidateForm(invalidFields){
$("td input").each(function(){
  if($.inArray(this.name,invalidFields) >= 0){
    $(this).parent().css("background-color","rgba(244, 67, 54, 0.33)");
    }
  });
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>
      <input type="checkbox" name="purchase_mode" value="DIRECT" />Direct
    </td>
    <td>
      <input type="checkbox" name="description" value="SUPPLY" />SUPPLY
    </td>
  </tr>
  <tr>
      <td><input type="button" onclick="ValidateForm(['purchase_mode'])" value="Validate Form"></td>
  </tr>
</table>

关于jquery - 验证后更改 <td> 背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40017600/

相关文章:

jquery - 使用 jQuery 将一个标签替换为另一个标签,保留所有属性和数据

javascript - Ajax 正在缓存表单 onclick 的先前输出

javascript - 为什么当我将 xmlns 添加到我的文档类型时,我的文本框的宽度会改变?

javascript - 在日期选择器中显示当前日期

jquery - IE 8 及以下版本不会触发点击显示为 : none; Any workaround? 的元素

c# - 需要帮助在 asp.net 中为菜单项创建下拉菜单

javascript - 包含 2 张图片的响应式 DIv

javascript - jqgrid 中日期过滤和格式化的许多问题

鼠标点击时jQuery动画div

javascript - 如何使用 document.getElementById(someid).onclick 来标记 a