この質問RequiredFieldValidator
に基づいて、チェックボックスがチェックされている/チェックされていないときに、さまざまなコントロールをオン/オフしようとしています。しかし、検証する入力の ClientID に渡したいチェックボックスごとに個別の js 関数を用意するのではなく、次のようにします (ここでは INPUT は 1 つだけですが、動作していれば、js を追加せずに INPUT を追加できることがわかります)。
<asp:TextBox ID="txtSubject" runat="server" />
<asp:CheckBox ID="chkSubjectRequired" runat="server"
OnClick="updateValidator('<%= rfvSubject.ClientID %>');" />
<asp:RequiredFieldValidator ID="rfvSubject" ControlToValidate="txtSubject"
ErrorMessage="You must enter a subject." runat="server" />
<script>
function updateValidator(inputId) {
var enableValidator = !event.srcElement.checked;
var theInput = document.getElementById(inputId);
ValidatorEnable(theInput, enableValidator);
}
</script>
現在、そのスクリプトレットtxtSubject.ClientID
は評価されず、直接出力されるだけです。これは簡単だと思いますが、適切な構文がわかりません。