【问题标题】:JQuery in ASP.NET - Form Validation IssueASP.NET 中的 JQuery - 表单验证问题
【发布时间】:2011-11-29 17:32:02
【问题描述】:

它根本不起作用,我不知道为什么。理想情况下,我希望在模式对话框中弹出所有错误。但现在我什至无法让它正常工作。任何帮助,将不胜感激。谢谢。

HTML

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
<script src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js" type="text/javascript"></script>
<script src="../Scripts/Frame.js" type="text/javascript"></script>
</head>
<body runat="server" id="bodyLogin">
<div runat="server" id="frameLogin">
    <form runat="server" id="formLogin">
        <asp:CheckBox runat="server" ID="checkboxRemember" />
        <div><span id="un">Username</span><div id="forgotUsername">?</div><br />
        <asp:TextBox runat="server" ID="textUsername" Name="username" /></div>
        <div><span id="pw">Password</span><div id="forgotPassword">?</div><br />
        <asp:TextBox runat="server" ID="textPassword" Name="password" TextMode="Password" /></div>
        <asp:Button runat="server" ID="buttonLogin" Text="L" />
        <asp:Button runat="server" ID="buttonRegister" Text="R" />
    </form>
</div>
<div id="dialog" title="Errors" style="display:none;"><ul></ul></div>
</body>
</html>

jQuery

<script type="text/javascript">
$(function () {
$("#formLogin").validate({
    rules: {
        username: {
            required:true,
            minlength:3,
            maxlength:15
        },
        password: {
            required:true,
            minlength:6,
            maxlength:15
        },
    },
    messages: {
        username: {
            required: "Username is required.",
            minlength: "Username minimum length is 3 characters.",
            maxlength: "Username maxumum length is 15 characters."
        },
        password: {
            required: "Password is required.",
            minlength: "Password minumum length is 6 characters.",
            maxlength: "Password maximum length is 15 characters."
        }
    }
});
});
</script>

编辑:我都试过了...

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Frame_Login.aspx.cs" Inherits="Website.Frames.Frame_Login" ClientIDMode="Static" %>

还有……

    $("#<%= formLogin.ClientID %>").validate({

【问题讨论】:

    标签: jquery asp.net forms validation


    【解决方案1】:

    从 TextBox 控件中删除 Name 属性。一路上,您的值将被自动生成的值覆盖。并使用以下脚本:

    $(function () {
        $("#<%= formLogin.ClientID %>").validate({
            rules: {
                '<%= textUsername.ClientID %>': {
                    required: true,
                    minlength: 3,
                    maxlength: 15
                },
    
                '<%= textPassword.ClientID %>': {
                    required: true,
                    minlength: 6,
                    maxlength: 15
                }
            },
    
            messages: {
                '<%= textUsername.ClientID %>': {
                    required: "Username is required.",
                    minlength: "Username minimum length is 3 characters.",
                    maxlength: "Username maxumum length is 15 characters."
                },
    
                '<%= textPassword.ClientID %>': {
                    required: "Password is required.",
                    minlength: "Password minumum length is 6 characters.",
                    maxlength: "Password maximum length is 15 characters."
                }
            }
        });
    });
    

    【讨论】:

    • 工作出色!谢谢!
    【解决方案2】:

    如果使用 .NET 4,您必须将 ClientIDMode 设置为 Static,否则获取 ClientID 并将其粘贴在 javascript 中。

    【讨论】:

    • 不幸的是,这似乎没有帮助。
    【解决方案3】:

    由于您的表单有 runat="server",因此您需要在 jQuery 中使用 asp 客户端 ID。

    像这样:

    $("#<%= formLogin.ClientID %>").validate({
    //etc
    

    【讨论】:

    • 不幸的是,这似乎也没有帮助。
    猜你喜欢
    • 2011-07-17
    • 2017-08-29
    • 1970-01-01
    • 2011-07-14
    • 2012-08-17
    相关资源
    最近更新 更多