【发布时间】:2009-07-13 06:33:02
【问题描述】:
我编写了一个将 Javascript 函数附加到表单的提交按钮的 UserControl。 Javascript 函数通过调用Page_IsValid 确保页面有效,然后继续执行一些代码。对于有问题的页面,Page_IsValid 在首次加载时设置为 true。如果我没有设置 OnClientClick,Page_IsValid 在第一次加载时会正确设置为 false。我不知道为什么 Page_IsValid 会这样,因为根本没有触发任何事件。此外,它只发生在某些页面上而不是其他页面上。似乎这只发生在将 WebForm_DoPostBackWithOptions 附加到其 onclick 事件的页面上。为什么简单地添加一个点击事件会产生如此大的不同?
这是我的代码:
服务器端:
(control as Control).OnClientClick = "disableSubmit(); return false;";
这是生成的代码:
没有 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>
使用 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>
【问题讨论】:
-
我的眼睛:(如果它更容易阅读,我真的很想帮助你......
标签: asp.net validation webforms