이 question을 기반으로 확인란을 선택/선택 해제 할 때 다양한 RequiredFieldValidator
컨트롤을 켜거나 끄려고합니다. 하지만 각 체크 박스에 대해 별도의 js 함수를 사용하는 대신 유효성을 검사 할 입력의 ClientID를 전달하려는 경우 (여기에 하나의 INPUT 만 있지만 작업이 완료되면 더 많은 js가없는 INPUT을 추가 할 수 있음을 알 수 있습니다) :ASP.NET에서 control.ClientId를 OnClick 함수에 전달하는 방법은 무엇입니까?
<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
은 평가되지 않고 바로 출력됩니다. 나는 이것이 간단하다고 확신하지만 적절한 구문을 모른다.
그래, 그것이 자바 스크립트에서 않는 한 aspx 파일에서 할 수없는 것 같습니다. 결국 자바 스크립트에서 작업을 마쳤습니다. 예 :' 다음에 SCRIPT 섹션에서 : function updateValidator (rfvName) {var inputMap = { "rfvSubject": "<% = rfvSubject.ClientId %>", ... more entries}; var rfvId = inputMap [rfvName]; ... rfvId로 할 일 ... '. 그래, 조금 심하긴하지만 어떤 이유로 나는 코드 숨김이 onclick 추가를 원하지 않았다. –
Rory