Precisa de uma maneira melhor de validar as caixas de seleção do ASP.NET usando um plugin de validação jquery?

Problema:

Eu quero validar algumas caixas de seleção ASP.NET usando o plugin de validação jquery (encontrado em:http://bassistance.de/jquery-plugins/jquery-plugin-validation/)

O que é tudo isso:

Não é possível definir o atributo name das caixas de seleção do ASP.NET (ou é?). Ele será automaticamente configurado, quando o controle for renderizado e puder ser recuperado usando

<%= emailCheckBox.UniqueID %>

Então, duas caixas de seleção como as seguintes:

<asp:CheckBox runat="server" ID="emailAcceptCheckBox" />Email<br />
<asp:CheckBox runat="server" ID="phoneAcceptCheckBox" />Phone<br />

irá renderizar para:

<INPUT id="ctl00_MainContentPlaceHolder_emailAcceptCheckBox" type="checkbox" name="ctl00$MainContentPlaceHolder$emailAcceptCheckBox">
<INPUT id="ctl00_MainContentPlaceHolder_phoneAcceptCheckBox" type="checkbox" name="ctl00$MainContentPlaceHolder$phoneAcceptCheckBox">

Talvez seja uma confusão misturar ASP.NET com o plugin de validação jquery, mas eu prefiro o plugin de validação jquery e funciona bem com entradas e outros campos.

O problema é que o plugin de validação jquery deseja agrupar as caixas de seleção usando o atributo name das caixas de seleção. Esses atributos de nome devem ser iguais a todas as caixas de seleção e um grupo.

O que eu fiz:

Eu adicionei uma regra para todas as caixas de seleção usando jquery:

$("#[id*='AcceptCheckBox']").each(function() { $(this).rules("add", { minchecked: 1 }); });

E adicionei minha própria regra para verificar as caixas de seleção:

jQuery.validator.addMethod("minchecked",
 function(value, element, param) {
     var noOfChecked = $("#[id*='AcceptCheckBox']:checked").length;
          return noOfChecked >= param;
     },
 "Error");

(Esta regra será aplicada a caixas de seleção cujos IDs incluam AcceptCheckBox, mas está tudo bem neste exemplo).

Quando eu chamo:

var result = $("#aspnetForm").validate().form();

Ele retorna perfeitamente se a minha validação foi bem sucedida ou falhou!

MAS:

1) Eu não sinto que esta é uma solução muito limpa e agradável. Algum melhor conselho?

2) Quando eu executo validate (). Form (), ele passa por TODAS as minhas caixas de seleção e para cada uma delas, marque todas as outras caixas de seleção. Isso não é realmente necessário. Como posso evitar isso?

questionAnswers(1)

yourAnswerToTheQuestion