我从中下载了这个jquery验证引擎 http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/
除确认密码验证之外,所有验证都正常运行,它始终有效 天密码是否匹配。
验证在单个页面上有效,但在母版页的内容页面中无效。
请帮帮我......
.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 :(得分:1)
好的,所以你在这里有几件事。首先,您可能不应该在内容页面中放置表单元素。典型的ASP.NET表单在母版页中。你可能会为自己做更多的工作但是......我可以理解你为什么要这样做。因此,您的主要问题是,当您在母版页中有内容时(默认行为),ID字段将获得前缀,以便它们不会与其他占位符中的内容中的ID冲突。
如果您查看来源,“TextBox1”将类似于
&lt; input name =“ctl00 $ MainContent $ TextBox1”type =“text”value =“asdf”id =“MainContent_TextBox1”class =“validate [required] text-input”/&gt;
您的验证正在寻找TextBox1而不是MainContent_TextBox1。
你有几个选择。重要的是要了解每个人的后果(我会留给你研究)。
选项1: 在母版页的顶部(在其声明中),您可以将其放在ClientIDMode =“Static”中。 ASP.NET不会触及您的ID,如果它们发生冲突,这是您的责任。
选项2: 我不关心这个,但偶尔使用它。从asp.net获取客户端ID
验证[必需,等于[&lt;%= TextBox1.ClientID%&gt;]]
选项3: 可能还有其他可能放入jquery选择器,找到像TextBox1
这样的id希望这会有所帮助
答案 1 :(得分:1)
当.net呈现时,它会更改表单ID,而不是使用:
jQuery("#form1").validationEngine();
请使用:
jQuery("form").validationEngine();
查看源代码并获取表单的ID并将其放在那里
答案 2 :(得分:0)
我遇到了同样的问题并解决了这个问题。
你可以轻松完成。
添加到主页顶部(我只添加了ClientIDMode =“静态”)
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="geneticAjans.master.cs" Inherits="geneticAjans_gen" ClientIDMode="Static" %>
将其添加到$(文件).ready(); (你应该写你的母版页面表格id)
$("#Button1").click(function(){
if ($("#form1").validationEngine('validate') == false)
return false;
});
现在,您的JQuery验证引擎应该可以工作。