J'ai écrit un UserControl qui attache une fonction Javascript au bouton d'envoi d'un formulaire. La fonction Javascript s'assure que la page est valide en appelant Page_IsValid
puis continue à exécuter du code. Pour les pages problématiques, le Page_IsValid
est défini sur true lors du premier chargement. Si je ne définis pas OnClientClick, Page_IsValid
est correctement défini sur false sur le premier chargement. Je n'arrive pas à comprendre pourquoi Page_IsValid se comporte de cette manière, car aucun événement n'est déclenché du tout. En outre, cela n'arrive que sur certaines pages et pas d'autres. Il semble que cela n'arrive qu'aux pages WebForm_DoPostBackWithOptions attachées à leurs événements onclick. Pourquoi simplement ajouter un événement de clic fait une telle différence?Page`_IsValid est défini sur true si OnClientClick est défini
Voici mon code:
côté serveur:
(control as Control).OnClientClick = "disableSubmit(); return false;";
Voici le code qui est généré:
Sans OnClickEVent:
<input type="image" name="ctl00$wpm$CheckoutPage$ctl02$ContinueButton"
id="ctl00_wpm_CheckoutPage_ctl02_ContinueButton"
src="../images/continue.gif" alt="Continue"
onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(
"ctl00$wpm$CheckoutPage$ctl02$ContinueButton", "", true,
"OPC", "", false, false))" style="border-width:0px;" />
<br /><br />
</td>
Avec OnClickEvent:
<tr id="ctl00_wpm_CheckoutPage_ctl02_trContinue">
<td valign="top">
<div id="ctl00_wpm_CheckoutPage_ctl02_AddressValidationSummary"
class="validationSummary" style="color:Red;display:none;"></div>
<br />
<input type="image" name="ctl00$wpm$CheckoutPage$ctl02$ContinueButton"
id="ctl00_wpm_CheckoutPage_ctl02_ContinueButton" src="../images/continue.gif"
alt="Continue" onclick="disableSubmit();
return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(
"ctl00$wpm$CheckoutPage$ctl02$ContinueButton", "", true,
"OPC", "", false, false))" style="border-width:0px;" />
<br /><br />
</td>
</tr>
Mes yeux: (Je voudrais vraiment vous aider si ce serait plus facile à lire ... – Amadeus45