我有一个输出分配给项目的系统的表单。系统是循环的,可以动态添加新行,因此无法使用ID属性。
当用户更改状态下拉选项时,我需要关联的“状态生效日期”字段变为必填字段。我不知道如何很好地遍历DOM,以便用datepicker类定位字段。
<tr>
<th class="form">
<label>Status</label>
</th>
<td>
<div style="float:left;">
<select class='status' name="status" >
<option value="New">New</option>
<option value="Existing">Existing</option>
and so on...
</select>
</div>
</td>
<th class="form">
<label>Status Eff. Date</label>
</th>
<td>
<div style="float:left;">
<input type="text" name="statuseffective" class="datepicker" size="15" >
</div>
</td>
</tr>
如果详细说明,该过程将像这样工作:
当用户对状态进行更改时,JS将找到包含class .datepicker和addClass('required ')的下一个输入字段,并将焦点设置为该字段(设置焦点是可选的,因为addClass'required'已经将该字段变为红色)。
我可以确定哪个下拉框发生了变化,但我无法到达下一个输入元素。任何帮助将不胜感激。
2条答案
按热度按时间qni6mghb1#
应该可以
更新
好吧,那么...因为两个人的父母不一样,你必须上一层楼。next只查找直接的下一个元素,nextAll查找所有的元素(看起来像在同一个dom级别)。测试了一堆不同的方法,得出了这个结论:
这应该对你有用!
quhf5bfb2#
我们走吧编辑我的答案,因为我现在看到.datepicker与. status不在同一个父节点下。
$(“.status”).live(“click”,function(){ $(this).parent().find('input. datepicker').addClass(“required”).focus();)};