1

テーブルのデータを使用してチェックボックスのリストを表示するCheckBoxListがあります。

このテーブルのレコードは変更されると予想されますが、最後の項目は、期待値を持つその他のテキスト値を持つことが予想されます。

ユーザーが「その他」を選択した場合、指定された「その他」の説明を入力する関連テキストボックスを有効にできるようにしたいと思います。JavascriptまたはjQueryを使用してクライアントでこれを実行できるようにしたいと思います。

IDの個々のリスト項目は動的に作成されるため、次のようなハードコーディングを回避する方法があります。

chkOther = document.getElementbyID( "checkListItem12_chkOccupationOther")

jQueryはわかりませんが、たとえば、そのライブラリは、一致するIDマスクを使用して制御を取得するための優れた方法を提供していると思います。

提案?

4

2 に答える 2

1

「その他」チェックボックスが常に最後になることを保証できる場合は、最後のセレクターを使用できます。チェックボックスリストのIDを使用する:

$(document).ready(function() {
    $("#<%=YourCheckBoxList.ClientID%> input:checkbox:last").click(function(){
       if(this.checked)  {          
          //Enable Text Box Here
       }else{
          //Disable here 
       }
    });
});

編集: RobGのコメントに従って、「this」からjQueryオブジェクトへの不要な変換を削除するように更新されました。

于 2011-07-25T01:07:02.053 に答える
1

プレーンJSでこれを非常に簡単に行うことができます。チェックボックスはフォームにあると思いますので、まずフォームを取得してから、最後のチェックボックスにリスナーを追加します。

function addClick() {
  var form = document.forms['f0'];
  var input, inputs = form.getElementsByTagName('input');
  var i = inputs.length;

  while (i--) {
    input = inputs[i];

    if (input.type == 'checkbox') {
      input.onclick = function() {
        if (this.checked) {

          // Do stuff...
          alert('checked!');

        } else {
          // Put stuff in here if unchecked, probably
          // want to hide whatever is shown when above
          // is clicked
        }
      }
      // Going backward, the first checkbox found is the
      // last one so stop after first one found
      return;
    }
    input = null;
  }
}

次に、DOM対応関数またはwindow.onloadを使用して、関数を下部のスクリプトとして追加します。

于 2011-07-25T02:23:55.437 に答える