0

I downloaded this jquery validation engine from http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/

All validation is Working fine except Confirm Password validation it validates all the time wheather password is matching or not.

validation works perfecrt on individual page but its not working in content page of the master page.

please help me...

.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>
4

3 に答える 3

1

わかりました、ここにいくつかのものがあります。まず、フォーム要素をコンテンツ ページに配置しないでください。典型的な ASP.NET フォームはマスター ページにあります。あなたは自分のためにもっと仕事をしているかもしれませんが..なぜあなたがこれをするのか理解できます。したがって、主な問題は、マスター ページにコンテンツがある場合 (既定の動作)、別のプレースホルダーのコンテンツの ID と衝突しないように ID フィールドにプレフィックスが付けられることです。

ソースを表示すると、「TextBox1」は次のようになります

<input name="ctl00$MainContent$TextBox1" type="text" value="asdf" id="MainContent_TextBox1" class="validate[必須] テキスト入力" />

あなたの検証は、MainContent_TextBox1 ではなく TextBox1 を探しています。

いくつかのオプションがあります。それぞれの影響を理解することが重要です (これについては、調査に任せます)。

オプション 1: マスター ページの上部 (宣言内) で、これを ClientIDMode="Static" に配置できます。ASP.NET は ID に影響を与えることはありません。ID が衝突した場合、それはユーザーの責任です。

オプション 2: 私はこれを気にしませんが、時々使用しました。asp.net からクライアント ID を取得する

validate[必須,equals[<%= TextBox1.ClientID %>]]

オプション 3: TextBox1 のような ID を見つける jquery セレクターを配置する他の可能性があるかもしれません

お役に立てれば

于 2011-09-08T19:52:26.373 に答える
1

.net がレンダリングされると、次を使用する代わりにフォーム ID が変更されます。

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

使ってください:

jQuery("form").validationEngine();

ソースを表示し、フォームのIDを取得してそこに配置します

于 2012-06-09T11:11:06.537 に答える
0

私はあなたと同じ問題を抱えており、この問題を解決しました。

簡単にできます。

これをマスターページの先頭に追加します (私は ClientIDMode="Static" のみを追加しました)

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

これを $(document).ready(); の内部に追加します。(マスター ページのフォーム ID を記述する必要があります)

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

これで、JQuery Validation Engine が機能するはずです。

于 2013-06-21T08:30:23.737 に答える