JQuery в ASP.NET - проблема проверки формы - PullRequest
0 голосов
/ 29 ноября 2011

Это вообще не работает, и я не уверен, почему. В идеале я хотел бы, чтобы все ошибки появлялись в модальном диалоговом окне. Но сейчас я даже не могу заставить его работать нормально. Любая помощь будет оценена. Спасибо.

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({

Ответы [ 3 ]

1 голос
/ 29 ноября 2011

Удалить свойство Name из элементов управления TextBox.В любом случае, ваша ценность будет переопределена автоматически.И используйте скрипт ниже:

$(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."
            }
        }
    });
});
0 голосов
/ 29 ноября 2011

Поскольку ваша форма имеет runat = "server", вам нужно использовать идентификатор клиента asp в вашем jQuery.

Примерно так:

$("#<%= formLogin.ClientID %>").validate({
//etc
0 голосов
/ 29 ноября 2011

Вы должны установить ClientIDMode на Static, если используете .NET 4, в противном случае получите ClientID и вставьте его в javascript.

...