Вы видите, что упомянули runat = "server".
Таким образом, когда ваша страница загружается в браузер (клиент), идентификатор «chkTraining» меняется на что-то другое ...... это базовое действие asp.net, которое изменяет идентификаторы серверных элементов управления.
Также проверьте свойство ClientIdMode в разделе свойств.
ЕСЛИ оно статическое или наследуемое, вы получите его, как вы упомянули в коде.
Но если вы использовали любое другое значение, например AutoId, Predictable, сделайте вот так:
Это
<%=chkTraining.ClientID%>
даст вам идентификатор клиента.
После получения идентификатора клиента вы можете использовать его для доступа к свойствам этого элемента управления.
например,
var chk = document.getElementById('<%=chkTraining.ClientID%>');
if (chk.checked == true) {
alert("checked");
}
else {
alert("unchecked");
}