IE9提交行为OnClick事件取消但PostBack仍然发生
OnClick Event Cancelled but PostBack Still Occurs in IE9 for Submit Behavior
网络表单上的提交按钮附加了一个 OnClick
事件。该按钮在 IE9 以外的所有浏览器中都能正常工作。按钮验证由 parsleyjs
完成,我认为这是问题的来源;因为 OnClick
事件被验证取消了。但是,回发事件仍然发生。即使发生回发,它也不会触发 OnClick
事件。
一个可能的解决方案是切换到 UseSubmitBehavior="true"
,这确实有效;但是,我宁愿弄清楚是什么导致回发发生而不是触发事件。
您可以使用 asp:Panel
(呈现为 div)而不是 div;并在服务器端更改它的 Visible
属性 这样你就可以将它渲染(或不渲染)给客户端。
另一种选择是使用 asp:Literal
,它不会呈现 div
并且不会在其 ViewState 中发送回服务器。
最后的问题是,parsley.remote.js
parsley.js
的扩展以某种方式修改了回发请求,因此未提供 EVENTARGUMENT
。深入研究 parsley.remote.js 应该让位于正在发生的事情。
删除库(对我来说它是未使用的)更正了它。
网络表单上的提交按钮附加了一个 OnClick
事件。该按钮在 IE9 以外的所有浏览器中都能正常工作。按钮验证由 parsleyjs
完成,我认为这是问题的来源;因为 OnClick
事件被验证取消了。但是,回发事件仍然发生。即使发生回发,它也不会触发 OnClick
事件。
一个可能的解决方案是切换到 UseSubmitBehavior="true"
,这确实有效;但是,我宁愿弄清楚是什么导致回发发生而不是触发事件。
您可以使用 asp:Panel
(呈现为 div)而不是 div;并在服务器端更改它的 Visible
属性 这样你就可以将它渲染(或不渲染)给客户端。
另一种选择是使用 asp:Literal
,它不会呈现 div
并且不会在其 ViewState 中发送回服务器。
最后的问题是,parsley.remote.js
parsley.js
的扩展以某种方式修改了回发请求,因此未提供 EVENTARGUMENT
。深入研究 parsley.remote.js 应该让位于正在发生的事情。
删除库(对我来说它是未使用的)更正了它。