客户端验证

时间:2012-07-04 07:50:46

标签: javascript asp.net

我在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函数调用。

这会导致一些问题吗?

1 个答案:

答案 0 :(得分:1)

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

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

OnClientClick="return SaveFunctionalities();"

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

<强>更新

根据@Richa在评论中发布的代码,无论验证返回什么,您总是返回false

你的功能看起来应该更像......

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