ASP:RequiredFieldValidator 和 jQuery 不兼容
Posted
技术标签:
【中文标题】ASP:RequiredFieldValidator 和 jQuery 不兼容【英文标题】:ASP:RequiredFieldValidator and jQuery incompatibility 【发布时间】:2017-07-16 01:26:44 【问题描述】:我的页面上运行了一些 jQuery 插件(即选项卡)。当我添加 <asp:requiredfieldvalidator>
时,jQuery 功能停止工作......有什么想法吗?
未捕获的类型错误:无法读取未定义的属性“移动” ZozoTabs.init 中的 Object.initAnimation (zozo.tabs.js:1050) (zozo.tabs.js:799) 在 htmlDivElement。 (zozo.tabs.js:2122) 在 jQuery.fn.init.each 的 Function.each (jquery-2.1.4.js:374) (jquery-2.1.4.js:139) 在 jQuery.fn.init.$.fn.zozoTabs (zozo.tabs.js:2120) 在 HTMLDocument。 (PatientRegistration.js:18) 着火 (jquery-2.1.4.js:3099) 在 Object.fireWith [as resolveWith] (jquery-2.1.4.js:3211) 在 Function.ready (jquery-2.1.4.js:3417)
if (jQuery.browser.mobile)
//_base.settings.event = zozo.events.touchend;
_base.settings.shadows = false;
if ($.zozo.core.support.css.transition === false)
_base.settings.animation.type = zozo.animation.types.jquery;
if (jQuery.browser.mobile)
_base.settings.animation.duration = 0;
【问题讨论】:
你能得到你的源代码的快照吗? 我收到此错误,未捕获的类型错误:无法在 ZozoTabs.init (zozo.tabs.js:799) 的 Object.initAnimation (zozo.tabs.js:1050) 处读取未定义的属性 'mobile'在 HTMLDivElement. (zozo.tabs.js:2122) 在 Function.each (jquery-2.1.4.js:374) 在 jQuery.fn.init.each (jquery-2.1.4.js:139) 在jQuery.fn.init.$.fn.zozoTabs (zozo.tabs.js:2120) at HTMLDocument. (PatientRegistration.js:18) at fire (jquery-2.1.4.js:3099) at Object.fireWith [as resolveWith] (jquery-2.1.4.js:3211) 在 Function.ready (jquery-2.1.4.js:3417) if (jQuery.browser.mobile) //_base.settings.event = zozo.events.touchend; _base.settings.shadows = false; if ($.zozo.core.support.css.transition === false) _base.settings.animation.type = zozo.animation.types.jquery; if (jQuery.browser.mobile) _base.settings.animation.duration = 0; 这一切发生在我添加 asp 必填字段验证器时,如果我删除它,一切正常 RequiredFieldValidator is not working properly with jQuery UI的可能重复 【参考方案1】:这已在 Stack Overflow 的其他地方得到解答:
Answer 1:
来自 ASP.NET 的
RequiredFieldValidator
使用 jQuery 客户端,它 需要先注册(见这里)。显然,ASP.NET 在 表单的第一部分。
如果您在您的
<head>
内注册了自己的<script>
标签 页面(首先是 jQuery,然后是 jQuery UI),这实际上意味着你是 失去你的 jQuery UI 绑定,因为 jQuery 再次被引用 在<head>
之后感谢 WebForms。解决方案是引用您的脚本(jQuery、jQuery UI 和任何 自定义脚本)在页面末尾,例如在表单之后 元素。
Answer 2
您需要一个 web.config 密钥来启用 4.5 之前的验证模式。
关于ValidationSettings:UnobtrusiveValidationMode的更多信息:
指定 ASP.NET 如何全局启用内置验证器控件 为客户端验证逻辑使用不显眼的 javascript。
类型:UnobtrusiveValidationMode
默认值:无
备注:如果此键值设置为 "None" [默认],则 ASP.NET 应用程序将使用 4.5 之前的行为(JavaScript inline in the pages)用于客户端验证逻辑。如果此键值设置为 “WebForms”,ASP.NET 使用 HTML5 数据属性和后期绑定 JavaScript 来自添加的脚本参考,用于客户端验证 逻辑。
例子:
<appSettings> <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" /> </appSettings
【讨论】:
以上是关于ASP:RequiredFieldValidator 和 jQuery 不兼容的主要内容,如果未能解决你的问题,请参考以下文章