过去一年左右我很喜欢这个网站,并期待着你们所有人的帮助。
我正在开发一个经典的asp页面(我继承了这个页面,没有创建它),它有一个由记录集填充的表。记录集中的每条记录都会根据所选的条件在表上生成一个新行。为了便于说明和简化,如果选择1个商店或1000个商店,该表将生成那么多行。假设选择了两个记录,表格如下所示:
<table>
<tr class="row">
<td>Store 1</td>
<td><input type=checkbox value="" name="chkFoo<%=rsR2.AbsolutePosition%>"/>Foo</td>
<td><input type=checkbox value="" name="chkBar<%=rsR2.AbsolutePosition%>" class="Bar"/>Bar</td>
<td><input type=checkbox value="" name="chkDo<%=rsR2.AbsolutePosition%>"/>Do</td>
<td><input type=checkbox value="" name="chkRe<%=rsR2.AbsolutePosition%>" class="Re"/>Re</td>
<td><input type=checkbox value="" name="chkMe<%=rsR2.AbsolutePosition%>"/>Me</td>
</tr>
<tr class="row">
<td>Store 2</td>
<td><input type=checkbox value="" name="chkFoo<%=rsR2.AbsolutePosition%>"/>Foo</td>
<td><input type=checkbox value="" name="chkBar<%=rsR2.AbsolutePosition%>" class="Bar"/>Bar</td>
<td><input type=checkbox value="" name="chkDo<%=rsR2.AbsolutePosition%>"/>Do</td>
<td><input type=checkbox value="" name="chkRe<%=rsR2.AbsolutePosition%>" class="Re"/>Re</td>
<td><input type=checkbox value="" name="chkMe<%=rsR2.AbsolutePosition%>"/>Me</td>
</tr>
</table>
每个对象都根据记录位置获得自己的名称。我几乎是javascript和jquery的新手(在去年左右尝试学习它),但我想做的是:如果有人点击标题为“Re”的复选框,我想要禁用并选中同一行上标题为“栏” 的复选框。基本上,如果选中重新,栏 strong>必须在提交表格之前进行检查。
我尝试了以下jquery代码,但我正在努力解决它。
$('.Re').live('click', function () {
var n = $(this).siblings('Bar');
if ($(this).attr('checked')) {
n.prop('disabled', true);
} else {
n.prop('disabled', false);
}
});
我也尝试过这个链接(除其他外)无济于事。 http://bit.ly/15NPhdN。有什么建议?任何帮助将不胜感激。提前谢谢!
答案 0 :(得分:0)
我猜这样的事情应该这样做:
$(function() {
$('table').on('change', '.Re', function () {
console.log(this.checked)
$(this).closest('td').siblings('td').find('.Bar').prop('checked', this.checked);
});
});
注意:
on()
会更好,因为live()
已被弃用checked
属性设置/取消设置已检查状态,而不是disabled
?答案 1 :(得分:0)
$(function(){
$('.Re').on('change', function () {
var n = $(this).siblings('Bar');
if ($(this).attr('checked')) {
n.prop('disabled', true);
} else {
n.prop('disabled', false);
}
});
});