【问题标题】:ASP.NET WebForms and jQuery Validation - validate() undefinedASP.NET WebForms 和 jQuery 验证 - validate() 未定义
【发布时间】:2015-04-05 06:09:35
【问题描述】:

我认为 jQuery 的全部目的是让开发人员的生活更轻松,但自从我大约 3 个月前开始学习如何使用它以来,它一直给我带来的只是噩梦!

我现在正在开发一个 ASP.NET WebForms 应用程序并尝试使用 jQuery Validation,因为内置的验证器控件无法轻松地呈现在其输入对应项下方。这就是我想做的一切;输入带有动态出现和消失的错误消息在其下方,但我已经将头撞在砖墙上 5 个小时试图弄清楚如何做一个,看似 - 难以置信 -简单的小东西!

我从一堆<asp:RegularExpressionValidator><asp:RequiredFieldValidator> 控件开始(因为你不能用一个控件进行两个验证),但我不喜欢错误消息在我的输入右侧的内联显示方式。所以我花了大约 2.5 小时试图让 ASP.NET 用display: block; 渲染该死的东西,但无济于事。

那时我记得大约一个月前一位同事向我提到了 jQuery Validation 插件......所以我开始尝试用它来实现一个解决方案。但无论我尝试什么,Windows 上的 Google Chrome v.41 总是在 jQuery.validate() 函数上给我一个“未定义不是函数”错误。

我知道您在想什么:类似于“ASP.NET 破坏控件 ID...yada yada yada”的内容,但我一直在 web.config 的 <system.web> 部分中使用 <pages clientIDMode="Static" />因为我开始了这个项目,所以这不是问题。我也有 99.999% 的把握以正确的顺序包含必要的脚本,即使有些脚本包含在我的母版页中,有些包含在内容页面中(这不重要,不是吗?)

这篇文章已经太长了,请查看the full code here

MTIA 给任何能告诉我到底发生了什么的人!

【问题讨论】:

  • 相关代码应该包含在问题中,而不是在我很快消失的地方请阅读stackoverflow.com/help/mcve
  • 正如我所说,这篇文章已经很长了,完整的 aspx 页面是 546 行...以供将来参考,您真的希望我包含类似的内容吗这里???将其缩小到显示问题的摘录是不可能的,因为我不知道问题出在哪里,只知道它在该页面中某处
  • @AdrianHHH - 我刚刚阅读了你链接到的页面并看到了这个建议:“分而治之。当你有少量代码,但问题的根源完全不清楚时,开始删除一次编写一点代码,直到问题消失——然后将最后一部分加回去”。这就是克里斯蒂娜和我最终解决问题的方式,所以我想我应该一开始就这样做,甚至从未在这里发布过。我很抱歉。

标签: c# asp.net webforms jquery-validate


【解决方案1】:

我调试了你的代码。问题出在你的 cmets 上。从代码中删除您的 cmets,它将起作用:)

【讨论】:

  • 不可思议的LMAO;我刚刚在几乎与您完全相同的时间自己发现了这一点!但无论如何还是谢谢 ;-) 不敢相信我因为几个愚蠢的 cmets 而浪费了整整 $#@!ing 一天!我以前从未见过这样的事情......为什么在地球上你的代码中有 cmets 会以任何方式影响 JS/JQ,更不用说让浏览器盲目地告诉我一个函数是未定义的。 ..我完全不明白这个无论如何感谢您的回答和复活节快乐:D
  • 我也很想知道您是如何调试代码的……这样的工具肯定会让我的生活轻松 100 倍!如果我只是在 VS 中按 F10、F11 或 F5,则页面运行时不会在任何地方停止……您是在某些初始化函数中使用断点这样做的吗?如果有,是什么功能?
  • 对于 Javascript 代码,我使用 Google Chrome 默认调试器 (Ctrl+Shift+I)。但如果您有 Internet Explorer,则可以使用开发人员工具 (F12)。在 Visual Studio 中,您编辑代码,插入您希望调试器停止、保存的 debugger; 行,然后在浏览器中按 F5 键进行刷新,调试器应该停止在那里。
  • 啊,好吧,您的意思是您调试了 JS……是的,我也为此使用了 Chrome 的内置开发工具。但这就是我发现我提到的未定义错误的方式,没有任何有用的信息......除非我在错误的地方寻找......?
  • 我从一个简单的场景开始,一个只有一个字段的表单,添加其余代码,直到出现错误。这对我来说并不奇怪,这不是我第一次在 Web 窗体应用程序中遇到这个问题,注释行没有被考虑在内。但我一直不明白为什么。因此,在您的情况下,真正的问题可能出在 RequiredFieldValidator 标签上。也许它们与 JQuery 验证器或其他东西不兼容。
猜你喜欢
  • 2011-04-10
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-04
  • 1970-01-01
  • 2018-05-16
相关资源
最近更新 更多