Eu fiz algumas pesquisas sobre isso, e encontrei várias respostas parciais, porém nada que me dê aquela impressão calorosa "esta é a maneira certa de fazer isso". Para responder à reclamação que ocorre com mais frequência contra esta pergunta: "as caixas de seleção podem ter dois estados legítimos - marcada e desmarcada", esta é uma caixa de seleção "Aceito os termos e condições ..." que deve ser marcada para concluir um registro, portanto, marcar a caixa é necessária do ponto de vista da lógica de negócios.
Forneça fragmentos de código prontos para cortar e colar completos com sua resposta! Eu sei que há várias peças para isso - o CustomValidator (presumivelmente), o code-behind, algum javascript e possivelmente uma verificação para IsValid, e a parte frustrante para mim é que em cada exemplo que vi, um desses peças estão faltando!
fonte
jQuery("#<%= MyCheckBox.ClientID %>")
vez dejQuery(".AcceptedAgreement input:checkbox")
ser mais explícito, qual elemento você está tentando afetar.Versão C # da resposta de andrew:
Código por trás:
fonte
Se você quiser um validador verdadeiro que não dependa do jquery e lide com a validação do lado do servidor também (e você deve. A validação do lado do servidor é a parte mais importante), então aqui está um controle
fonte
A resposta de Scott funcionará para classes de caixas de seleção. Se você quiser caixas de seleção individuais, precisa ser um pouco mais furtivo. Se você estiver fazendo apenas uma caixa, é melhor fazê-lo com IDs. Este exemplo faz isso por meio de caixas de seleção específicas e não requer jQuery. É também um pequeno exemplo bom de como você pode colocar esses IDs de controle irritantes em seu Javascript.
O .ascx:
E o código por trás:
fonte
Normalmente, eu executo a validação no lado do cliente:
fonte
Maneira não javascript. . página aspx:
Código por trás:
Para quaisquer ações que você possa precisar (regras de negócios):
Desculpe pelo código VB. . . você pode convertê-lo para C # se desejar. A empresa para a qual trabalho agora requer VB :(
fonte