0

1つのチェックボックスボタンに基づいて一連のチェックボックスを無効/有効にするのに問題があります。JQueryでStruts2を使用しています。9つのチェックボックスがあります:

<tr>
  <td><s:checkbox id="chkMain" name="Anywhere"/><s:property value="getPositionLabel('ANYWHERE')" /></td>
</tr>
<tr>
  <td><s:checkbox name="system"/><s:property value="getPositionLabel('SYSTEM')" /></td>             
  <td><s:checkbox name="author"/><s:property value="getPositionLabel('AUTHER')" /></td>
</tr>
<tr>
  <td><s:checkbox name="function"/><s:property value="getPositionLabel('FONCTION')" /></td>
  <td><s:checkbox name="reference"/><s:property value="getPositionLabel('REFERENCE')" /></td>
</tr>
<tr>
  <td><s:checkbox name="constructor"/><s:property value="getPositionLabel('CONSTRUCTOR')" /></td>                                                     
  <td><s:checkbox name="content"/><s:property value="getPositionLabel('CONTENT')" /></td>
</tr>
<tr>
  <td><s:checkbox name="materiel"/><s:property value="getPositionLabel('MATERIEL')" /></td>
  <td><s:checkbox name="title"/><s:property value="getPositionLabel('TITLE')" /></td> 
  <td>&nbsp;</td>
</tr>

チェックボックスボタン「どこでも」を選択すると、他のすべてのチェックボックスが無効になります。選択を解除すると、他のすべてのチェックボックスが有効になります。

jqueryを使用してこの動作をどのように達成できますか?

4

2 に答える 2

0

このようなもの:

$("#chkMain").click(function() {
    $('input[type="checkbox"]').not(this).prop("disabled", this.checked);
});

つまり、chkMainがクリックされたときに、ページ上のすべてのチェックボックスを1つを除いて選択し、それらの無効なプロパティをチェックされたステータスに一致するように設定しますchkMain

この機能の一部ではないページに他のチェックボックスがある場合は、セレクターをより具体的にする必要があります。たとえば、関連するチェックボックスがすべて、そのテーブルなどのオブジェクトを含む場合です。

$('#idOfTable input[type="checkbox"]').not(this).prop("disabled", this.checked);

または、それらすべてに共通のクラスを与えることができます。その場合、次の.not(this)部分を省略できます。

$('input.someClass').prop("disabled", this.checked);
于 2012-08-23T12:43:03.023 に答える
0

テストされていませんが、これを試してください

$("#chkMain").click(function()
{
     $('input[type="checkbox"]').not(this).attr("disabled", this.checked);
});
于 2012-08-23T12:45:09.183 に答える