Probléma:
Azt akarom, hogy érvényesítse néhány ASP.NET-négyzeteket a jquery érvényesítési plugin (megtalálható: http://bassistance.de/jquery-plugins/jquery-plugin-validation/ )
Mi ez az egész:
Nem lehet beállítani a name attribútum ASP.NET jelölőnégyzetet (vagy mégsem?). Ez lesz automatikusan beállítva, amikor a vezérlő teszi, és lehet letölteni segítségével
<%= emailCheckBox.UniqueID %>
Tehát két jelölőnégyzet a következő:
<asp:CheckBox runat=server ID=emailAcceptCheckBox />Email<br />
<asp:CheckBox runat=server ID=phoneAcceptCheckBox />Phone<br />
megfizetek:
<INPUT id=ctl00_MainContentPlaceHolder_emailAcceptCheckBox type=checkbox name=ctl00$MainContentPlaceHolder$emailAcceptCheckBox>
<INPUT id=ctl00_MainContentPlaceHolder_phoneAcceptCheckBox type=checkbox name=ctl00$MainContentPlaceHolder$phoneAcceptCheckBox>
Lehet, hogy ez a rendetlenség, hogy keverje ASP.NET a jquery érvényesítési beépülő modult, de én inkább a jquery érvényesítési bővítmény és ez jól működik bemenettel és egyéb területeken.
A probléma az, hogy a jquery érvényesítés bővítmény akarja csoportosítani a négyzeteket a név-attribútum jelölőnégyzetet. Ez a név attribútum egyenlőnek kell lennie az összes jelölőnégyzetet, és egy csoport.
Mit tettem:
Én hozzá a szabályt az összes négyzetet a jQuery:
$(#[id*='AcceptCheckBox']).each(function() { $(this).rules(add, { minchecked: 1 }); });
És hozzáadjuk a saját szabály ellenőrzése négyzetet:
jQuery.validator.addMethod(minchecked,
function(value, element, param) {
var noOfChecked = $(#[id*='AcceptCheckBox']:checked).length;
return noOfChecked >= param;
},
Error);
(Ez a szabály vonatkozik a jelölőnégyzetek, amelyek azonosítóit tartalmazza AcceptCheckBox, de ez rendben van ebben a példában).
Amikor hívom:
var result = $(#aspnetForm).validate().form();
Ez adja vissza tökéletesen, ha a hitelesítési sikeres vagy sikertelen!
DE:
1) nem érzem, hogy ez egy nagyon tiszta és szép megoldás. Bármilyen jobb tanácsot?
2) Amikor futtatom érvényesítse (). Forma () akkor az menjen végig az én négyzeteket és mindegyikük ellenőrizze az összes többi dobozt. Ez tényleg nem szükséges. Hogyan lehet ezt elkerülni?













