如何为每个if元素更改添加或删除类

时间:2014-03-10 17:20:25

标签: javascript jquery html validation addclass

我有一个带有jquery-validate和jquery-steps的表单。我需要检查,如果其中一个字段不为空,则必须填写同一行中的另一个字段。如您所知,必须填写类"required"的元素。我留下每个元素都没有上课要求。在进行下一步之前,必须检查是否有空元素。如果至少有一个,则必须将“required”类添加到同一行中的所有输入。例如,如果填写输入"name",则还必须填写输入"surname"和输入"email"

<table bolder=1">
<thead>
<tr>
<th>Name</th>
<th>Surname</th>
<th>Email</th>
</tr>
</thead>
</table>
<tbody>
<tr>
<td>
<input class="documentCheck" type="text">
</td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
</tr>
<tr>
<td>
<input class="documentCheck" type="text">
</td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
</tr>
<tr>
<td>
<input class="documentCheck" type="text">
</td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
</tr>
</tbody></table>

在我理解im dummy之前我做了什么:Fiddle

 $(function () {
     $(".documentCheck").change(function () {
         name = $(".documentCheck").val();
         if (name.length > 0) {
             $("td").find('.req').first().addClass("required");
         }
     });
 });

提前致谢

2 个答案:

答案 0 :(得分:1)

尝试

$(function () {
 $(".documentCheck").blur(function () {
     name = $(".documentCheck").val();
     if (name.length > 0) {
         $(this).parents("tr").find("input").addClass("required");
     }
     else
    {
     $(this).parents("tr").find("input").removeClass("required");
     }
 });
 });

仅当输入的先前值发生更改时,才会触发更改。如果您将输入设置为空白,则不会触发。

Demo

答案 1 :(得分:1)

这样做:

     $(document).ready(function(){
        $(".documentCheck").on('change',"td > input",function() {
             $(this).parent().siblings().children('input').addClass('required');
         });
     });

FIDDLE

更新FIDDLE