Problem:
Chcę zweryfikować niektóre ASP.NET-pól wyboru przy użyciu plugin sprawdzania poprawności jquery (znaleźć na stronie: http://bassistance.de/jquery-plugins/jquery-plugin-validation/ )
Co w tym wszystkim chodzi:
To nie jest możliwe, aby ustawić atrybut name wyboru ASP.NET (lub nie?). To będzie automatycznie ustawiona, gdy kontrola jest renderowany i mogą być pobierane za pomocą
<%= emailCheckBox.UniqueID %>
Więc dwa pola wyboru jak:
<asp:CheckBox runat=server ID=emailAcceptCheckBox />Email<br />
<asp:CheckBox runat=server ID=phoneAcceptCheckBox />Phone<br />
odda:
<INPUT id=ctl00_MainContentPlaceHolder_emailAcceptCheckBox type=checkbox name=ctl00$MainContentPlaceHolder$emailAcceptCheckBox>
<INPUT id=ctl00_MainContentPlaceHolder_phoneAcceptCheckBox type=checkbox name=ctl00$MainContentPlaceHolder$phoneAcceptCheckBox>
Może to bałagan wymieszać ASP.NET z pluginu walidacji jQuery, ale wolę plugin sprawdzania poprawności jquery i działa prawidłowo z wejściami i innych dziedzinach.
Problem polega na tym, że plugin sprawdzania poprawności jquery chce grupy pól wyboru przy użyciu nazwy atrybutu z wyboru. Ta nazwa atrybuty powinny być równe dla wszystkich pól i grupy.
Co ja zrobiłem:
I dodaje regułę do wszystkich wyboru przy użyciu jQuery:
$(#[id*='AcceptCheckBox']).each(function() { $(this).rules(add, { minchecked: 1 }); });
I dodał własne reguły sprawdzania wyboru:
jQuery.validator.addMethod(minchecked,
function(value, element, param) {
var noOfChecked = $(#[id*='AcceptCheckBox']:checked).length;
return noOfChecked >= param;
},
Error);
(Zasada ta będzie miała zastosowanie do wyboru, których identyfikatory zawierają AcceptCheckBox, ale to nic złego w tym przykładzie).
Kiedy zadzwonić:
var result = $(#aspnetForm).validate().form();
Zwraca ona doskonale, jeśli mój walidacji udało, czy nie!
ALE:
1) Nie czuję, że jest to bardzo czyste i ładne rozwiązanie. Lepsza rada?
2) Kiedy biegnę validate (). Forma () będzie ona przejść przez wszystkie moje wyboru i dla każdego z nich sprawdzić wszystkie pozostałe pola wyboru. To nie jest naprawdę konieczne. W jaki sposób można tego uniknąć?













