【问题标题】:Clienside validation before server side服务器端之前的客户端验证
【发布时间】:2012-07-11 23:25:24
【问题描述】:

我的问题:

1) 回发总是发生

2) 这是查看 requiredFieldValidator 是否是有效客户端的正确方法吗?

我想要什么:

用户点击可见的点击按钮。

这会调用 isValid()。

如果页面有效,则调用服务器端函数。

如果页面无效,请提醒。

<asp:Button ID="btnSubmit" runat="server" Text="Submit" ToolTip="Submit" CausesValidation="true" CssClass="blueNew buttonNew" 
                OnClientClick="isValid(); return false;" />

<div style="display: none;">
    <asp:Button ID="hiddenBtnSubmit" runat="server"  OnClick="btnSubmit_Click" />
 </div>

 <script>
function isValid() {
    if (Page_IsValid) {
        var button = document.getElementByID("<%=hiddenBtnSubmit.ClientID%>");
        button.click();
    } else {
        if (!reqFirstName.IsValid) {
            alert("First name is invalid");
        }
    }      
}
 </script>

【问题讨论】:

    标签: javascript jquery asp.net postback


    【解决方案1】:

    不,你只需要像这样添加验证器:

    <asp:TextBox runat="server" ID="txtEmail" />
    <asp:RequiredFieldValidator
        ErrorMessage="The email is required"
        ToolTip="The email is required"
        Text="(*)"
        ControlToValidate="txtEmail"
        runat="server" />
    <asp:ValidationSummary runat="server" DisplayMode="BulletList" ShowMessageBox="true" />
    

    每当您尝试提交表单时,验证都会在客户端执行,您无需手动执行验证

    输出将类似于:

    编辑 1

    <script type="text/javascript">
        function validate() {
            var val = Page_ClientValidate('');
            if (!val) {
                for (i = 0; i < Page_Validators.length; i++) {
                    if (!Page_Validators[i].isvalid) {
                        $("#" + Page_Validators[i].controltovalidate).qtip();
                    }
                }
            }
    
            return val;
        }
    </script>
    
    <asp:Button OnClientClick="return validate();" Text="Post" runat="server" />
    

    【讨论】:

    • 我想以自定义方式显示返回消息?最好的方法是什么?
    • 可以使用ValidationSummary控件显示所有错误信息,我会更新帖子添加示例
    • 好的,验证摘要只显示纯文本我想在回发时使用 qtip 工具提示显示错误消息这可能吗?
    • Val 总是返回 null 我是否快速尝试上述方法?还是应该这样?
    • val 应该返回 true 或 false,我仍在测试是否显示 qtip 工具提示,我以前没有使用过 qtip,但 val 变量再次起作用。如果不是您的情况,请在调用 Page_ClientValidate 函数时指定您的 ValidationGroup 如果您不使用验证组,只需使用空字符串调用它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 2017-01-26
    • 2010-09-14
    • 2016-10-16
    • 1970-01-01
    相关资源
    最近更新 更多