Sur mon formulaire asp.net, je voudrais désactiver le bouton soumettre chaque fois que ses valideurs échouent, c'est-à-dire Page_isValid = false
-et le réactiver par la suite. Je peux le faire en répondant à l'événement onchange
de chaque contrôle et test pour Page_isValid
, mais je préfère répondre au changement de la variable elle-même, ou à l'exécution de la fonction qui fait le changement.Appelez la fonction javascript lorsque Page_isValid change?
De mes recherches à ce jour, voici ce que j'ai concocté:
Sys.Application.add_load(AddValidatorHandlers);
function AddValidatorHandlers() {
var validatorList;
try { validatorList = Page_Validators; } catch (err) { }
if (validatorList) {
for (i in validatorList) {
validatorList[i].onpropertychange = function() { "MY CODE GOES HERE" };
}
}
}
Il fonctionne, mais pas très efficace. Je dois parcourir tous les validateurs, et ma fonction se déclenche toujours plusieurs fois de suite.
Y at-il un moyen que je peux simplement (a) répondre à l'altération de cette variable Page_isValid
? ou (b) obtenir une liste de groupes de validation plutôt que les validateurs individuels?
Merci!
btw, le try/catch impair est parce que mes validateurs sont dans un contrôle GridView, et quand ce n'est pas en mode Edit, demander la variable Page_Validators provoque une erreur. S'il y a une meilleure façon de le faire - et j'en suis sûr - j'aimerais l'entendre. –