2011-09-01 40 views
0

我下載了這個jQuery驗證引擎從 http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/jQuery驗證引擎的ASP頁不能正常工作有了主文件

所有驗證除了確認密碼驗證工作正常它驗證所有的時間 wheather密碼匹配或不。

確認作品在個人頁面上完成,但不在主頁面的內容頁面中工作

請幫我...

.aspx文件

<%@ 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> 
+0

請發佈您的.aspx代碼 –

回答

1

好了,你有幾件事情在這裏。首先,你可能不應該在內容頁面中放置表單元素。典型的ASP.NET表單在母版頁中。你可能會爲自己做更多的工作,但是..我可以理解你爲什麼可以這樣做。所以你的主要問題是,當你在母版頁中有內容時(默認行爲),ID字段將被加上前綴,以便它們不會與另一個佔位符中的內容的id相沖突。

如果您查看源代碼, 「TextBox1的」 看起來像

<輸入名稱= 「ctl00 $搜索Maincontent $ TextBox1的」 類型= 「文本」 值= 「ASDF」 ID = 「MainContent_TextBox1」 級=「驗證[required] text-input「/ >

您的驗證是查找TextBox1而不是MainContent_TextBox1。

您有幾個選項。理解每個方面的後果是很重要的(我會留給你去研究)。

選項1: 在您的母版頁頂部(在其聲明中),您可以將它放在您的ClientIDMode =「Static」中。 ASP.NET不會觸及您的ID,如果它們發生衝突,這是您的責任。

選項2: 我不在乎這個,但有時使用它。從asp.net獲得客戶端ID

驗證[需要,等於[<%= TextBox1.ClientID%>]]

選項3: 可以有投入jQuery選擇的其他可能性,即發現ID像TextBox1的

希望這有助於

1

當.NET使得它改變了形式的ID,這樣,而不是使用的:

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

請使用:

jQuery("form").validationEngine(); 

用於查看源代碼,讓你的表單的id,並把它放在那裏

0

我有同樣的問題與你解決了這個問題。

你可以很容易地做到這一點。

此項添加到TOP母版頁(我只加的ClientIDMode = 「靜態」)

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

此項添加到內部$(文件)。就緒(); (你應該寫你的母版頁表格ID)

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

現在,您的jQuery驗證引擎應該是工作。