当用户点击该行中的复选框时,我需要动态地将验证规则添加到文本框中,并在用户取消选中时将其删除。这就是我所做的,它工作正常,但我不确定这是否是正确的方法。 这是我的HTML代码:
<tbody>
<c:forEach items="${list}" var="item">
<tr>
<td align="center">
<input type="checkbox" name="selectItems" value="<c:out value="${item.numberPlate}"/>" />
</td>
<td align="left"><c:out value="${item.numberPlate}"/></td>
<td align="left"><c:out value="${item.driver.fullName}"/></td>
<td align="left"><input type="text" name="mileage_<c:out value="${item.numberPlate}"/>" value="" /></td>
</tr>
</c:forEach>
</tbody>
和我的jquery:
----- ---- EDITED
现在我正在使用 add / removeClass ,它也可以正常工作,但是不是更快的方法吗?我的意思是,避免编写这么多'add / removeClass'指令的一种方法是什么?最后我怎么能用addClass表示“min:100”或“minlength:6”?
$("input[name=selectItems]").change(function() {
if (this.checked)
{
$(this).closest("tr").find("input[name^=mileage]").addClass('required');
$(this).closest("tr").find("input[name^=mileage]").addClass('number');
}
else
{
$(this).closest("tr").find("input[name^=mileage]").removeClass("required")
$(this).closest("tr").find("input[name^=mileage]").removeClass('number');
}
});
任何建议都是受欢迎的......我差点忘了,圣诞快乐!
答案 0 :(得分:2)
一个小的改进是使用addClass和removeClass而不是使用attr分配类值,这样你就不会删除任何已经分配给不处理验证的输入字段的类(即分配给字段样式的类)
修改 :(根据您的评论更新了以下代码)
$("input[name=selectItems]").change(function() {
var me = $(this);
var scoper = me.parent().parent();
var otherInputs = $("input[name^=mileage]", scoper);
if (this.checked)
{
otherInputs.addClass('required number');
otherInputs.attr('maxlength', '6');
}
else
{
otherInputs.removeClass("required number");
}
});