Проверка JQuery в ASP.NET - PullRequest
3 голосов
/ 17 мая 2010

У меня странная ситуация, возможно, ее легко исправить, или я что-то упускаю, но вот вопрос.

У меня есть форма asp.net с главной страницей, и моя проверка работает без проблем, но проблема начинается, когда я пытаюсь подключить событие click к стороне сервера,

вот что я имел в виду: у меня есть форма с несколькими полями на ней, и если форма пуста, чем следует прекратить отправку, в противном случае позвольте мне выполнить сценарий на стороне сервера

но этого не происходит, даже моя форма находится в недопустимом состоянии (я получаю сообщение об ошибке, в котором говорится, что я должен ввести необходимые поля), но все еще выполняю сценарий на стороне сервера.

Я хотел бы выполнить сценарий на стороне сервера, только если форма находится в действительном состоянии.

вот мой код: моя главная страница

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>jQuery Validation in ASP.NET Master Page</title>
    <script src="Scripts/jquery-1.3.2.js" type="text/javascript"></script>
    <script src="Scripts/jquery-1.3.2-vsdoc2.js" type="text/javascript"></script>
    <script src="Scripts/jquery.validate.js" type="text/javascript"></script>

    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>

моя страница контента:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
      <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <script type="text/javascript">
        $(document).ready(function() {
            $("#aspnetForm").validate({
                rules: {
                    <%=txtName.UniqueID %>: {
                        minlength: 2,
                        required: true
                    },
                     <%=txtEmail.UniqueID %>: {                        
                        required: true,
                        email:true
                    }
                }, messages: {
                    <%=txtName.UniqueID %>:{ 
                        required: "* Required Field *", 
                        minlength: "* Please enter atleast 2 characters *" 
                    }
                }
            });
        });
    </script>

    Name: <asp:TextBox ID="txtName" MaxLength="30" runat="server" /><br />
    Email: <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox><br />
    <asp:Button ID="btnSubmit" runat="server" onclick="SubmitTheForm();" Text="Submit" />
</asp:Content>



function SubmitTheForm() {
    SaveTheForm();
}


function SaveTheForm() {
    debugger;
    var request = buildNewContactRequest();

    ContactServiceProxy.invoke({ serviceMethod: "PostNewContact",
        data: { request: request },
        callback: function(response) {     
            processCompletedContactStore(response);
        },
        error: function(xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });  
    return false; 
} 

я пробовал оба способа

1)

$(document).ready(function() {
        $("#btnSubmit").click(function(event) {
            event.preventDefault(); 
            SaveTheForm();
    });
});

2)

<asp:Button ID="btnSubmit" runat="server" onclick="SubmitTheForm();

  function SubmitTheForm() {
        SaveTheForm();
    }

Ответы [ 4 ]

4 голосов
/ 17 мая 2010

вы публикуете свои данные без проверки, является ли форма действительной или нет Я думаю, что вы должны использовать что-то вроде этого

function SubmitTheForm() {
    if ($("#aspnetForm").valid()) SaveTheForm();
}
0 голосов
/ 22 июня 2010

Вы пытаетесь поместить скрипт кода jQuery в Head ContentPlaceHolder

0 голосов
/ 17 мая 2010

Я думаю, что ваша кнопка должна быть

return SaveTheForm();

Как в:

<asp:Button ID="btnSubmit" runat="server" onclick="return SubmitTheForm();" Text="Submit" />
0 голосов
/ 17 мая 2010

Извините, я даю вам плохой совет. Забудь мою предыдущую запись. Что такое метод SubmitTheForm ()? Вы используете плагин проверки jQuery, поэтому вам просто нужно присоединить проверочный материал к форме, и все должно быть в порядке с миром.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...