Javaスクリプトを書く必要があります。これは、ページでチェックボックスが選択されているかどうかを検証するためのものです。ここでの問題は、チェックボックスがグリッド内にあり、動的に生成されることです。レンダリングする必要のあるチェックボックスの数である理由は、設計時にはわかりません。したがって、IDはサーバー側でのみ認識されます。
4 に答える
javascriptも生成する必要があります。または、少なくとも、制御する必要のあるチェックボックスを含むjavascriptデータ構造(配列)を生成する必要があります。
または、包含要素を作成し、チェックボックスタイプのすべての子入力要素でjsを使用して循環させることもできます。
ここに考えがあります:
匿名で示されているように、JavaScript を生成できます。ASP.NET を使用している場合は、RegisterClientScriptBlock() メソッドを使用すると便利です。クライアント側スクリプトの挿入に関する MSDN
また、チェックボックスをパラメーターとして取り、関数を呼び出してそれ自体をパラメーターとして渡す onClick 属性をチェックボックス定義に追加する JavaScript 関数を作成または生成することもできます。
function TrackMyCheckbox(ck)
{
//keep track of state
}
<input type="checkbox" onClick="TrackMyCheckbox(this);".... />
これが唯一のチェックボックスである場合は、getElementsByTagName()呼び出しを実行してすべての入力を取得し、返された配列を反復処理して適切な型の値(つまりチェックボックス)を探すことができます。
質問にはあまり詳細がありません。ただし、HTML グリッドがサーバー側で生成されると仮定します (javascript ではありません)。
次に、確実にチェックしたいチェックボックスにクラスを追加します。そして、DOM をループして、そのクラスのすべてのチェックボックスを探します。jQueryの場合:
HTML:
<html>
...
<div id="grid">
<input type="checkbox" id="checkbox1" class="must-be-checked" />
<input type="checkbox" id="checkbox2" class="not-validated" />
<input type="checkbox" id="checkbox3" class="must-be-checked" />
...
<input type="checkbox" id="checkboxN" class="must-be-checked" />
</div>
...
</html>
Javascript:
<script type="text/javascript">
// This will show an alert if any checkboxes with the class 'must-be-checked'
// are not checked.
// Checkboxes with any other class (or no class) are ignored
if ($('#grid .must-be-checked:not(:checked)').length > 0) {
alert('some checkboxes not checked!');
}
</script>