Механизм проверки JQuery не работает на странице ASP с мастер-файлом - PullRequest
0 голосов
/ 01 сентября 2011

Я загрузил этот механизм проверки jquery с http://www.position -absolute.com / articles / jquery-form-validator-потому что-form-validation-is-a-mess /

Все проверки работоспособны, за исключением Подтверждение проверки пароля , оно проверяет все время, когда пароль совпадает или нет.

проверка работает идеально на отдельной странице, но не работает на странице содержимогоглавная страница.

, пожалуйста, помогите мне ...

.aspx file

<%@ 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 src="Styles/jquery-1.6.min.js" type="text/javascript"></script>
    <script src="Styles/jquery.validationEngine-en.js" type="text/javascript"></script>
    <script src="Styles/jquery.validationEngine.js" type="text/javascript"></script>
    <link href="Styles/validationEngine.jquery.css" rel="stylesheet" type="text/css" />
     <script type="text/javascript">
         jQuery(document).ready(function () {
             // binds form submission and fields to the validation engine
             jQuery("#form1").validationEngine();
         });
     </script>
     <form id="form1" runat="server">
     <br />
     <br />
     <br />
     <asp:TextBox ID="TextBox1" runat="server" class="validate[required] text-input"></asp:TextBox>
    <br /><asp:TextBox ID="TextBox2" runat="server" class="validate[required,equals[TextBox1]] text-input"></asp:TextBox>
    <br />
    <asp:Button ID="Button1" runat="server" Text="Button" />

      </form>
</asp:Content>

Ответы [ 3 ]

1 голос
/ 09 июня 2012

Когда .net отображает, он изменяет идентификатор формы, поэтому вместо использования:

jQuery("#form1").validationEngine(); 

Пожалуйста, используйте:

jQuery("form").validationEngine();

для просмотра источника и получения идентификатора формы и местаэто там

1 голос
/ 08 сентября 2011

Хорошо, у вас здесь есть пара вещей. Во-первых, вы, вероятно, не должны помещать элемент формы в страницы контента. Типичная ASP.NET форма находится в главной странице. Возможно, вы делаете больше работы для себя, но .. Я понимаю, почему вы можете это сделать. Таким образом, ваша основная проблема заключается в том, что при наличии содержимого на главной странице (поведение по умолчанию) поля идентификаторов будут иметь префикс, чтобы они не конфликтовали с идентификаторами содержимого в другом заполнителе.

Если вы просматриваете источник, «TextBox1» будет выглядеть примерно так:

Ваша проверка ищет TextBox1, а не MainContent_TextBox1.

У вас есть несколько вариантов. Важно понимать последствия каждого (я оставлю это для вас, чтобы исследовать).

Вариант 1: В верхней части вашей главной страницы (в ее объявлении) вы можете поместить это в ваш ClientIDMode = "Static". ASP.NET не будет касаться ваших идентификаторов, если они конфликтуют, это ваша ответственность.

Вариант 2: Меня это не волнует, но я использовал это время от времени. Получить идентификатор клиента от asp.net

проверить [обязательно, равно [<% = TextBox1.ClientID%>]]

Вариант 3: Там может быть другая возможность вставить селектор jquery, который находит идентификатор как TextBox1

надеюсь, это поможет

0 голосов
/ 21 июня 2013

У меня возникла та же проблема с вами, и я решил эту проблему.

Вы можете сделать это легко.

ДОБАВИТЬ ЭТО НА К началу страницы мастера (я только добавил ClientIDMode = "Static")

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="geneticAjans.master.cs" Inherits="geneticAjans_gen" ClientIDMode="Static" %>

ДОБАВИТЬ ВНУТРИ $ (документ) .ready ();(Вы должны написать свой идентификатор формы главной страницы)

$("#Button1").click(function(){
    if ($("#form1").validationEngine('validate') == false)
        return false;
});

Теперь ваш механизм проверки JQuery должен работать.

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