12
votes

Asp.net onclientClick = "retourne faux;" ne fonctionne pas

Je veux juste ajouter une validation du côté client (JQuery JavaScript) dans un contrôle d'utilisateur Web. Je mets un gestionnaire OnClientClick et la fonction est appelée. Mais, même si je retourne "False", la méthode OnClick est toujours tirée. Qu'est-ce que je fais mal?

Je suis avec vs 2010, ciblant le cadre 4.0 avec JQuery 1.4.2. et jQuery ui 1.8.4. p>

Voici un exemple de code: p> xxx pré>

Méthode de script: p>

function ValidateMail() {
alert("Bouton clicked");
return false;


4 commentaires

Avez-vous essayé sans la boîte d'alerte? J'ai lu un autre message comme ça récemment


J'ai testé cela avec ASP.NET 4 et obtenez le comportement attendu.


Vérifiez les erreurs JavaScript qui l'empêchent de revenir false


Lorsque vous affichez la source rendue de la page HTML, votre événement "OnClick" est-il rendu dans la balise ou écrivez-vous que dans le code de l'arrière? En outre, avez-vous d'autres événements JQuery qui se lient à ce contrôle qui pourrait intercepter l'appel?


7 Réponses :


3
votes

Essayez de le changer en xxx


2 commentaires

Merci pour la réponse, cela fonctionne - mais cela n'a aucun sens! 3 mois avant que j'avais résolu ce même problème avec Firefox (avant leur dernière version) et cela a fonctionné avec "Validate de retour ();".


@ Alonso.Torres Je ne comprends pas cela. Est-ce que cela ne vient pas de retourner faux "toujours", même si le formulaire passe la validation, cela reviendra-t-il comme invalide, quelles que soient donc onclick ne sera jamais tiré?



7
votes

Avez-vous un gestionnaire d'événements de clic (enregistré via jQuery) qui renvoie vrai ? Dans ce cas, la valeur de retour de OnClientClick est ignorée.

Jetez un coup d'œil à ma question (et réponse): Pourquoi ne retourne pas False de OnClientClick annuler le message


0 commentaires

12
votes

Pour une raison quelconque, bien que je n'ai pas eu de gestionnaires d'événements JQuery attachés, cela n'a pas fonctionné.

Qu'est-ce qui a effectivement travaillé était: xxx


1 commentaires

Vous pouvez également écrire surClientClick = "retour validate_form ()"



3
votes

Grandes réponses. Je le fais de cette façon. Même résultat - l'événement OnClick n'est pas tiré si FALSE est renvoyé de la fonction Java.

OnClientClick = "if (!ValidateDelete()) return false;"
OnClick="btnDeleteSupplier_Click"


0 commentaires

0
votes

J'écris cette réponse uniquement parce que j'utilise des boutons HTML avec ASP.NET WebForms et je n'ai pas pu trouver de solution pourquoi dois-je remplacer mon morceau de code avec des exemples de travail. Voici une solution pourquoi cela ne fonctionne pas. J'espère que cela vous aidera à comprendre le problème comme en vérifiant cela m'a aidé. C'est mon premier message, désolé pour le style.

<button onclick="if(!myValidation()) return; __doPostBack('ctl00$PortalContent$buttonAddOrEdit','')" id="ctl00_PortalContent_buttonAddOrEdit" type="button" class="btn btn-success">Zapisz</button>


0 commentaires

0
votes

Il suffit d'ajouter JavaScript:

Exemple: xxx


1 commentaires

Bienvenue dans le débordement de la pile! Stack Overflow nécessite que tous les messages soient en anglais . J'ai enlevé la partie non anglais de votre message pour vous conformer à cette règle. Vous pouvez également utiliser l'une de ces communautés de débordement de pile spécifiques spécifiques qui permettent non-anglais: espagnol , japonais , russe , Portugais .



1
votes

assez étrangement cela a fonctionné pour moi:

function CanSubmit() {    
    return submit;
}


0 commentaires