2012-07-04 83 views
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> 

但在保存如前所述,与空字段错误消息一起

,保存被调用。

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

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

这是造成一些问题?

回答

1

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

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

OnClientClick="return SaveFunctionalities();" 

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

UPDATE

从张贴在由@Richa注释的代码,你总是返回false,无论什么验证的回报。

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

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

我做的JS功能的以下变化:)功能SaveFunctionalities({如果(Page_ClientValidate()){VAR DDL =的document.getElementById(” <%= lbMenu.ClientID%>“); var hdn = document.getElementById(“<%= hdnRight.ClientID%>”); hdn.value =“”; for(var i = 0; i Richa

+0

@Richa,让我仔细检查...你想btnMenu后回到服务器**如果**页面上的标准验证报告没有错误 – freefaller

+0

我想btnMenu调用btnMenu_Click(cs方法)只有当所有的验证已通过..ie没有字段为空..SaveFunctionalities只是保存在一个隐藏的领域的价值..如果这就是所谓的..它的好.. – Richa