Problem:
Ich möchte einige ASP.NET-Kontrollkästchen mit der Jquery Validierung Plugin validieren (gefunden bei: http://bassistance.de/jquery-plugins/jquery-plugin-validation/ )
Was geht es um:
Es ist nicht möglich, das Namensattribut von ASP.NET Kontrollkästchen zu setzen (oder ist es?). Es wird automatisch eingestellt werden, wenn die Steuer gemacht wird und abgerufen werden kann unter Verwendung von
<%= emailCheckBox.UniqueID %>
So zwei Kontrollkästchen wie folgt zusammen:
<asp:CheckBox runat=server ID=emailAcceptCheckBox />Email<br />
<asp:CheckBox runat=server ID=phoneAcceptCheckBox />Phone<br />
rendert zu:
<INPUT id=ctl00_MainContentPlaceHolder_emailAcceptCheckBox type=checkbox name=ctl00$MainContentPlaceHolder$emailAcceptCheckBox>
<INPUT id=ctl00_MainContentPlaceHolder_phoneAcceptCheckBox type=checkbox name=ctl00$MainContentPlaceHolder$phoneAcceptCheckBox>
Vielleicht ist es ein Chaos ASP.NET zu mischen mit der Jquery Validierung Plugin, aber ich ziehe die Jquery Validierung Plugin und es funktioniert mit Eingängen und anderen Bereichen in Ordnung.
Das Problem ist, dass die Jquery Validierung Plugin Gruppe will das Kontrollkästchen des Namen-Attribut von Kontrollkästchen verwenden. Dieser Name Attribut sollte für alle Kontrollkästchen und eine Gruppe gleich sein.
Was ich getan habe:
Ich habe eine Regel für alle Kontrollkästchen mit Jquery:
$(#[id*='AcceptCheckBox']).each(function() { $(this).rules(add, { minchecked: 1 }); });
Und fügte hinzu meine eigene Regel für Ankreuzfelder:
jQuery.validator.addMethod(minchecked,
function(value, element, param) {
var noOfChecked = $(#[id*='AcceptCheckBox']:checked).length;
return noOfChecked >= param;
},
Error);
(Diese Regel wird für Kontrollkästchen, deren IDs enthalten AcceptCheckBox anwenden, aber es ist in Ordnung, in diesem Beispiel).
Als ich nennen:
var result = $(#aspnetForm).validate().form();
Es gibt perfekt, wenn meine Validierung erfolgreich war oder nicht!
ABER:
1) Ich glaube nicht, dass dies eine sehr saubere und schöne Lösung. Jede bessere Beratung?
2) Wenn ich laufen validate (). Form (), es wird durch alle meine Checkboxen und für jeden von ihnen überprüfen alle anderen Kontrollkästchen. Das ist wirklich nicht nötig. Wie kann ich das vermeiden?













