2009-09-17 9 views
2

J'ai un bouton précédent et suivant dans lequel il y a une fonction de validation OnClientClick.OnClientClick ne fonctionne pas

Cette fonction n'est pas appelée lorsque je clique sur ce, S'il vous plaît aidez-moi

Code a donné ci-dessous:

<asp:Button ID="btn_view1_back" runat="server" Text="Back" 
      CausesValidation="False" ValidationGroup="Form2" /> 

<asp:Button ID="btn_View1_Next" runat="server" CausesValidation="true" Text="Next" 
      ValidationGroup="Form2" OnClientClick="return ValidateDropDown();" 
      UseSubmitBehavior ="true" /> 
+1

Pouvez-vous publier ValidateDropDown()? Et "onclick = 'return ValidateDropDown()'" est-il rendu? – mxmissile

+0

Assurez-vous que le rendu HTML du bouton possède l'attribut "onclick".Utilisez un débogueur javascript ou un firebug pour parcourir le clic. –

Répondre

3

Juste pour être sûr: ValidateDropDown a été défini dans le code JavaScript, droit ? OnClientClick est ce qui est exécuté sur le côté du client, c'est-à-dire le javascript.

L'autre chose est peut-être que la syntaxe pour OnClientClick pourrait besoin d'être différents, tels que: OnClientClick = « ValidateDropDown() »

+0

Sa syntaxe est correcte, en supposant que ValidateDropDown est en fait une méthode Javascript, – SLaks

+0

aucun espoir ne fonctionne toujours –

+14

Autre possibilité: si le bouton est désactivé lorsque la page est affichée, l'événement OnClientClick n'est PAS écrit en HTML. Votre bouton est-il désactivé lorsque la page est rendue? – AASoft

0

Le bouton arrière est de ne pas provoquer la validation, et ne dispose pas d'un Action OnClientClick définie.

+0

Le focus est le bouton "Suivant". Je pense que Jaison ne l'a pas décrit trop clairement. –

+0

oui son bouton suivant –

0

Votre méthode ValidateDropDown lance probablement une exception, ce qui entraîne la publication de toute façon.

Pouvez-vous poster le contenu de cette méthode?

Vous pouvez également utiliser Firebug et vérifier Break on all script errors dans le menu de débogage.

De plus, le code OnClientClick s'exécute dans le navigateur, et la méthode qu'il appelle doit être définie en Javascript, pas en VB.

0

Assurez-vous que la validation ne se déclenche pas. Il se peut que la validation se déclenche et que vous ne puissiez pas voir le texte ou ErrorMessage car il est vide par défaut.

0

Vous avez un point d'arrêt dans votre fonction de validation et il n'est pas touché? Ou pensez-vous que votre page ne sera pas diffusée?

Je m'attendrais à ce que la fonction ValidateDropDown soit appelée, mais je ne suis pas sûr. Cependant, je ne pense pas que ce soit important. Je ne pense pas que ce soit important parce qu'il semble que vous cherchez à empêcher une publication et ce n'est pas la façon de le faire. Cherchez-vous à empêcher une publication?

Si c'est le cas, je pense que la meilleure chose à faire ici est d'abandonner OnClientClick du bouton et d'ajouter à la place un contrôle CustomValidator pour votre dropdroplist, puis de définir la fonction ClientValidationFunction sur "ValidateDropDown". Il y a déjà un framework de validation côté client asp.net, donc je ne ferais que développer cela.

Mais je suis juste un idiot d'internet, je lis à peine ta question et ma réputation est de 16, donc je ne m'écouterais certainement pas.

1

Votre question est un peu clairement sur quelle fonction ne se déclenche pas (la JS OnClientClick ou côté serveur OnClick), mais si c'est le côté serveur, assurez-vous ValidateDropDown() est de retour true. Si elle renvoie false ou null ou quelque chose, la méthode du serveur ne se déclenchera pas.

Pouvez-vous envoyer votre code pour ValidateDropDown? Avez-vous vérifié qu'il est en train de tirer?