JQueryvalidation引擎无法在主页文件的ASP页面中工作

我从http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/下载了这个jqueryvalidation引擎

除了确认密码validation之外,所有validation都正常工作,它会validation密码是否匹配的所有时间。

validation在单个页面上工作但它不在母版页的内容页面中工作

请帮我…

.aspx文件

         jQuery(document).ready(function () { // binds form submission and fields to the validation engine jQuery("#form1").validationEngine(); });  





好的,所以你在这里有几件事。 首先,您可能不应该在内容页面中放置表单元素。 典型的ASP.NET表单在母版页中。 你可能会为自己做更多的工作但是……我可以理解你为什么要这样做。 因此,您的主要问题是,当您在母版页中有内容时(默认行为),ID字段将获得前缀,以便它们不会与其他占位符中的内容的ID冲突。

如果您查看源,“TextBox1”将看起来像

您的validation正在寻找TextBox1而不是MainContent_TextBox1。

你有几个选择。 重要的是要了解每个人的后果(我会留给你研究)。

选项1:在母版页的顶部(在其声明中),您可以将其放在ClientIDMode =“Static”中。 ASP.NET不会触及您的ID,如果它们发生冲突,则由您负责。

选项2:我不关心这个,但偶尔使用它。 从asp.net获取客户端ID

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

选项3:可能还有其他可能放入jquery选择器,找到像TextBox1这样的id

希望这可以帮助

当.net呈现时,它会更改表单ID,而不是使用:

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

请用:

 jQuery("form").validationEngine(); 

查看源代码并获取表单的ID并将其放在那里

我遇到了同样的问题并解决了这个问题。

你可以轻松地做到。

添加到主页顶部(我只添加了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; }); 

现在,您的JQueryvalidation引擎应该可行。