Behoefte aan een betere manier om ASP.NET vakjes te valideren met behulp van een jQuery validatie plugin?

stemmen
3

Probleem:

Ik wil enkele ASP.NET-vakjes met behulp van de jQuery validatie plugin te valideren (te vinden op: http://bassistance.de/jquery-plugins/jquery-plugin-validation/ )

Waar het allemaal om draait:

Het is niet mogelijk om de naam attribuut van ASP.NET vakjes te stellen (of is het?). Het zal automatisch worden ingesteld, wanneer de besturing wordt weergegeven en kan worden opgehaald met

<%= emailCheckBox.UniqueID %>

Dus twee vakjes de volgende:

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

zal verlenen aan:

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

Misschien is het een puinhoop te mengen ASP.NET met de jQuery validatie plugin, maar ik heb liever de jQuery validatie plugin en het werkt prima met ingangen en andere gebieden.

Het probleem is, dat de jQuery validatie plugin wil de groep de vakjes onder de naam-attribuut van checkboxes. Deze naam attributen moet gelijk zijn aan alle vakjes en een groep.

Wat ik heb gedaan:

Ik voegde een regel voor alle vakjes met behulp van jQuery:

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

En voegde mijn eigen regel controleren op vakjes:

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

(Deze regel zal gelden voor vakjes waarvan IDs bevatten AcceptCheckBox, maar het is goed in dit voorbeeld).

Als ik bel:

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

Het geeft perfect als mijn validatie is gelukt of mislukt!

MAAR:

1) Ik heb niet het gevoel dat dit een zeer schone en mooie oplossing. Beter advies?

2) Wanneer ik valideren (). Vorm () het zal gaan door al mijn vakjes en voor elk van hen laat U alle andere vakjes. Dat is echt niet nodig. Hoe kan ik dit vermijden?

De vraag is gesteld op 16/07/2009 om 10:44
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

Over het geheel genomen de code ziet er prima voor mij. Ik denk dat je netjes hebben behandeld de asp: beperking checkbox (je kunt 'name' attribuut voor asp niet opgeven: checkbox).

Persoonlijk zou ik gewone HTML checkbox gebruiken.

<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 />

(Ik heb een label tag toegevoegd, zodat de gebruiker op het etiket (grotere doel) om te controleren / schakelt u het selectievakje kunt klikken.)

Boven zal uw jQuery code te vereenvoudigen.

Op uw server side code, check Request.Form [ "acceptCheckBox"] tot wat wordt gecontroleerd en wat niet te zien.

antwoordde op 16/07/2009 om 17:49
bron van user

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