1

我在我使用过的 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>

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

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

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

这会引起一些问题吗?

4

1 回答 1

1

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

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

OnClientClick="return SaveFunctionalities();"

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

更新

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

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

function SaveFunctionalities() {
  if (Page_ClientValidate()) {
    ...
    return true;
  } else {
    return false; 
  }
}
于 2012-07-04T08:03:14.990 回答