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. 同じ値があるかどうかを確認し、「無効」属性を追加します

しかし、何かがおかしいので、ここからどこへ行くべきかわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

0

attrの場合は、代わりにpropを使用することに注意してください。また、検索関数で値を比較することもできます。

$(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 に答える