我在asp.net页面上有一个字段,我使用过RequiredFieldValidator
。
<tr>
<td align="left" style="width: 130px">
<asp:Label ID="LblPagename" runat="server" Text="Page Name " CssClass="label"></asp:Label><font
color="red"> *</font>
</td>
<td align="left" style="width: 1087px" class="layout-grid">
<asp:TextBox ID="TxtPageName" runat="server" MaxLength="50" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server" Display="Dynamic"
ValidationGroup="Save" ControlToValidate="TxtPageName" ForeColor="Red"
ErrorMessage="Please enter Page Name."></asp:RequiredFieldValidator>
</td>
</tr>
在保存时我允许CauseValidation="true"
使用与上述相同的ValidationGroup
<tr>
<td colspan="3" align="center" style="width: 1193px">
<asp:ImageButton ID="btnMenu" CausesValidation="true" ValidationGroup="Save" ImageUrl="~/Images/Save.png"
runat="server" OnClick="btnMenu_Click" OnClientClick="SaveFunctionalities();"/>
<asp:ImageButton ID="btnCancelMenu" ImageUrl="~/Images/btnCancel.png" runat="server"
OnClick="btnCancelMenu_Click" />
</td>
</tr>
但是在保存时,以及空字段的错误消息,正在调用保存。
同样的事情在其他页面上正常工作。
唯一的区别是,我在OnClientClick
上有一个javascript函数调用。
这会导致一些问题吗?
答案 0 :(得分:1)
确保SaveFunctionalities();
返回一个布尔值,具体取决于是否发生错误。如果一切正常,则返回true
- 如果有任何错误返回false
。
然后更新OnClientClick以将该返回变量传递给按钮..
OnClientClick="return SaveFunctionalities();"
如果没有问题,按钮将通过true
值正常继续。如果有错误,则会通过false
值告知它停止处理。
<强>更新强>
根据@Richa在评论中发布的代码,无论验证返回什么,您总是返回false
。
你的功能看起来应该更像......
function SaveFunctionalities() {
if (Page_ClientValidate()) {
...
return true;
} else {
return false;
}
}