1

首先简要说明:

我有 4 个表(1 和 3 包含一行复选框,2 和 4 包含单选按钮)。

我要做的是拥有它,这样当我在表 1 中选择一个复选框时,它会通过将等效复选框设置为“禁用”来更新表 2、3、4。

我认为最简单的选择是使用“VALUE”属性,因为这在每个表上都是相同的(例如,第一个表上具有 VALUE 4 的字段将等同于其他表上具有 VALUE 4 的字段)。

我的表每个表都有一个唯一的 ID,并且共享一个类名“TableClassName”。它们看起来都类似于:

<table id="TableID1" class="TableClassName">
<tr>
<th class="CellGrey">1</td>
<th class="CellGrey ">2</td>
<th class="CellGrey ">3</td>
<th class="CellGrey ">4</td>
</tr>
<tr>
<td class="CellRed "><INPUT TYPE="checkbox" NAME="ignore[]" VALUE="1" checked></td>
<td class="CellWhite "><INPUT TYPE="checkbox" NAME="ignore[]" VALUE="2"></td>
<td class="CellWhite "><INPUT TYPE="checkbox" NAME="ignore[]" VALUE="3"></td>
<td class="CellWhite "><INPUT TYPE="checkbox" NAME="ignore[]" VALUE="4"></td>
</tr>
</table>

到目前为止,我所拥有的是:

script type="text/javascript">
$(document).ready(function()
{
$("#TableID1").on('click','input:checkbox',function()
        { 
            if ($(this).attr('checked')) 
                {
                var $val = $(this).attr('value');
                //alert($val);
                $(".DBSelectTable td").function()
                    {
                        if ($(this).child().attr('VALUE') == $val)
                            {
                                $(this).child().attr('disabled');
                            } 
                    }

            }       
        }
    )
}       
);
</script>

但是,我收到了错误:

“未捕获的类型错误:对象 [对象对象] 没有方法‘函数’”

我的理论很简单:

  1. 选择#TableID1 表

  2. 找出第一个表中的哪个框被点击并获取VALUE属性

  3. 选择 .TableClassName 表

  4. 检查是否有相同的 VALUE,并添加“禁用”属性

但是出了点问题,我看不到从这里去哪里。任何帮助,将不胜感激。

4

1 回答 1

0

请注意,如果 attr. 此外,您可以比较 find 函数中的值。

$(document).ready(function()
{
$("#TableID1").on('change','input:checkbox',function()
        { 
            if ($(this).prop('checked')) 
                {
                    var val = $(this).val();                
                    $(".DBSelectTable td").find("[value='"+ val +"']").prop('disabled',true)
                }       
        }
    )
}       
);
于 2012-07-17T16:09:17.687 回答