客户端验证

Client Side Validation

本文关键字:验证 客户端      更新时间:2023-09-26

我在 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();"/> 
    &nbsp;&nbsp; &nbsp;&nbsp; 
    <asp:ImageButton ID="btnCancelMenu" ImageUrl="~/Images/btnCancel.png" runat="server" 
      OnClick="btnCancelMenu_Click" /> 
  </td> 
</tr>

但是在保存时,以及空字段的错误消息,正在调用保存。

同样的事情在其他页面上工作正常。

唯一的区别是,这里我有一个关于OnClientClick的javascript函数调用。

这会导致一些问题吗?

确保 SaveFunctionalities(); 返回一个布尔值,具体取决于是否发生了错误。 如果一切正常,则返回true - 如果有任何错误,则返回false

然后更新您的 OnClientClick 以将该返回变量传递给按钮。

OnClientClick="return SaveFunctionalities();"

如果没有问题,按钮将通过true值正常继续。 如果存在错误,则会通过 false 值被告知停止处理。

更新

从@Richa注释中发布的代码来看,无论验证返回什么,您总是返回false

你的函数应该看起来更像这样...

function SaveFunctionalities() {
  if (Page_ClientValidate()) {
    ...
    return true;
  } else {
    return false; 
  }
}