J'écris cette réponse parce que je suis à l'aide des boutons html avec ASP.NET WebForms et je ne pouvais pas trouver la solution pourquoi devrais-je remplacer mon morceau de code avec des exemples de travail. Voici la solution pourquoi cela ne fonctionne pas. J'espère que cela vous aidera à comprendre le problème, comme si cela m'avait aidé. Ceci est mon premier message, donc désolé pour le style.
<button type="button" id="buttonAddOrEdit" class="btn btn-success" runat="server" onclick="return myValidate()" onserverclick="buttonAddOrEdit_ServerClick">Zapisz</button>
Et la fonction javascript:
function myValidation() {
if (validator.form()) {
//Project logic
return true;
}
else return false;
};
Utiliser clic côté client après validation correcte n'a pas été événement déclencheur sur le côté serveur qui a été binded à bouton. Solution mentionnée pour changer le morceau de code:
onclick = "if (! MyValidation()) retourne;"
Fonctionne en raison de la façon dont le rendu html sur la page avec onserverclick est créé. Onserverclick sur le bouton html est remplacé par la méthode __doPostBack de javascript. Le code complet du bouton html rendu sur le côté client ressemble à ceci:
<button onclick="return myValidation(); __doPostBack('ctl00$PortalContent$buttonAddOrEdit','')" id="ctl00_PortalContent_buttonAddOrEdit" type="button" class="btn btn-success">Zapisz</button> Błąd składni
Et après le remplacer par si statment.
<button onclick="if(!myValidation()) return; __doPostBack('ctl00$PortalContent$buttonAddOrEdit','')" id="ctl00_PortalContent_buttonAddOrEdit" type="button" class="btn btn-success">Zapisz</button>
Travailler avec return myValidate(); ne sera pas tirgger événement car il retourne avant __doPostBack.
Le code suivant vous permettra d'ajouter un autre code au bouton si nécessaire et ne causera aucun problème.
Avez-vous essayé sans la boîte d'alerte? J'ai lu un autre article comme ceci récemment –
J'ai testé ceci avec ASP.NET 4 et obtiens le comportement attendu. –
Rechercher les erreurs javascript qui l'empêchent de retourner false – Aristos