Javascript 服务器端之前的客户端验证

Javascript 服务器端之前的客户端验证,javascript,jquery,asp.net,postback,Javascript,Jquery,Asp.net,Postback,我的问题: 1) 回发总是发生的 2) 这是查看requiredFieldValidator是否在客户端有效的正确方法吗 我想要的是: 用户单击可见的单击按钮 这将调用isValid() 若页面有效,则调用服务器端函数 如果页面无效,请发出警告 <asp:Button ID="btnSubmit" runat="server" Text="Submit" ToolTip="Submit" CausesValidation="true" CssClass="blueNew buttonNew

我的问题:

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>

函数isValid(){
如果(第页有效){
var按钮=document.getElementByID(“”);
按钮。单击();
}否则{
如果(!reqFirstName.IsValid){
警报(“名字无效”);
}
}      
}

不,您只需添加如下验证程序:

<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

函数验证(){
var val=页面\客户端验证(“”);
如果(!val){
对于(i=0;i
我想以定制的方式显示返回消息?最好的方法是什么?您可以使用
ValidationSummary
控件显示所有错误消息,我将更新帖子以添加示例好的,验证摘要仅显示纯文本我想在回发上使用qtip工具提示显示错误消息这可能吗?Val始终返回null我是否尝试快速执行上述操作?还是应该这样做?val应该返回true或false,我仍然在测试qtip工具提示是否显示,我以前没有使用过qtip,但是
val
变量仍然有效。如果不在您的情况下,请在调用
Page\u ClientValidate
函数时指定您的
ValidationGroup
。如果您不使用valdiation group,请使用空字符串调用它
<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" />