동적 클라이언트 스크립트
-
02-07-2019 - |
문제
Java 스크립트를 작성해야합니다. 확인란이 페이지에서 선택되었는지 여부를 확인해야합니다. 여기서 문제는 확인란이 그리드 내부에 있고 동적으로 생성된다는 것입니다. 렌더링 해야하는 확인란의 수는 설계 시간에 알 수 없습니다. 따라서 ID는 서버 측에서만 알고 있습니다.
해결책
여기에 생각이 있습니다.
익명으로 표시된대로 JavaScript를 생성 할 수 있습니다. 클라이언트 측 스크립트를 주입하는 MSDN
또한 확인란을 매개 변수로 가져 와서 기능을 호출하고 매개 변수로 전달하는 Checkbox 정의에 onclick 속성을 추가하는 JavaScript 함수를 작성하거나 생성 할 수 있습니다.
function TrackMyCheckbox(ck)
{
//keep track of state
}
<input type="checkbox" onClick="TrackMyCheckbox(this);".... />
다른 팁
JavaScript도 생성해야합니다. 또는 적어도 JavaScript 데이터 구조 (Array)는 제어해야 할 확인란을 포함해야합니다.
또는 포함 요소를 생성하고 유형 확인란의 모든 어린이 입력 요소에 JS로 순환 할 수 있습니다.
유일한 확인란 인 경우 getElementsByTagName () 호출을 수행하여 모든 입력을 얻은 다음 적절한 유형 값 (IE Checkbox)을 찾는 반환 배열을 반복 할 수 있습니다.
질문에는 별다른 정보가 없습니다. 그러나 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>
자바 스크립트 :
<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>
제휴하지 않습니다 StackOverflow