Brauchen Sie noch einen besseren Weg, ASP.NET Kontrollkästchen mit einem Jquery Validierung Plugin zu validieren?

stimmen
3

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?

Veröffentlicht am 16/07/2009 um 10:44
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Insgesamt sieht Ihr Code mir gut aussehen. Ich glaube, Sie sauber die asp behandelt haben: Checkbox Beschränkung (Sie nicht ‚name‘ Attribut für asp angeben: Checkbox).

Persönlich würde ich normale HTML-Checkbox.

<input type="checkbox" runat="server" ID="emailAcceptCheckBox" name="acceptCheckBox" value="emailAccepted" /><label for="emailAcceptCheckBox">Email</label><br />
<input type="checkbox" runat="server" ID="phoneAcceptCheckBox" name="acceptCheckBox" value="phoneAccepted" /><label for="phoneAcceptCheckBox">Email</label><br />

(Ich habe einen Label-Tag hinzugefügt, so dass Benutzer auf dem Etikett (größeres Ziel) klicken können, um zu aktivieren / deaktivieren Sie das Kontrollkästchen.)

Oben Ihren jQuery-Code vereinfachen.

Auf dem Server-seitigen Code, überprüfen Request.Form [ „acceptCheckBox“], um zu sehen, was geprüft wird und was nicht.

Beantwortet am 16/07/2009 um 17:49
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more