Een andere in de 'dingen die ik niet wist'ik weet het niet, maar echt zou moeten doen 'ik heb gedaanM SK3 - je kunt de Client-Side-Validatie uitschakelen met de clientMSC5side scriptMスク6
Oké hm, eigenlijk nogal beangstigend over deze een ... Ik ontdekte net dat dit mogelijk was... zodat ik een stukje Javascript kan uitsturen die me de Validatie op een controlus laat uitschakelen als er een bepaalde conditie is bereikt.
Client-Side API's
Sommige extra scenario's worden geactiveerd door functies die vanuit je client kunnen worden geroepen.
Tabel 4. Funkties geroepen vanuit de client-zijds script
| Naam | Beschrijving |
|---|---|
| ValidatorValidate(val) | Neemt een clientM SK1validator als input. Laat de validator zijn invoer controleren en zijn display opdateer |
| ValidatorOntsperen(val, OntspernenM SK2 | Neemt een client -validator en een Boolean-waarde. Aktiveert of deaktiveert een client-validaatorM SK3 Als hij gedeaktiveerd is, stopt hij met beoordelen en het zal altijd geldig lijken. |
| ValidatorHookupControl(controle,valM SK2 | Neemt een input HTML element en een client-validatorM SK2 Modifiseert of creëert het element 's veranderingsgebeurtenis zodat het de validator opdateert wanneer het veranderd isMSC4 Dit kan nuttig zijn voor custom-validators die afhankelijk zijn van meerdere input-waardenMska5 mska6 |
Van bijzondere toepassing is het in staat te zijn validatoren aan of uit te zetten. Als je een validatie hebt die je alleen wil activeren in bepaalde scenario's, dan moet je de activatie veranderen op zowel server als client , of je zult zien dat de gebruiker de pagina niet kan versturenM SK3
Hier is het vorige voorbeeld met een veld dat alleen gevalideerd moet worden als de checkbox niet gecheckt is:
public class Conditional : Page {
public HtmlInputCheckBox chkSameAs;
public RequiredFieldValidator rfvalShipAddress;
public override void Validate() {
bool enableShip = !chkSameAs.Checked;
rfvalShipAddress.Enabled = enableShip;
base.Validate();
}
}
Hier is de client-zijde-equivalent:
<input type=checkbox runat=server id=chkSameAs
onclick="OnChangeSameAs();" >Same as Billing<br>
<script language=javascript>
function OnChangeSameAs() {
var enableShip = !event.srcElement.status;
ValidatorEnable(rfvalShipAddress, enableShip);
}
</script>