1

我有一个asp:Panel默认按钮设置为表单的保存按钮。但是我希望当焦点位于表单中的一个特定锚元素上时,该Enter键不应触发 Panel 的DefaultButton。相反,它应该触发在href锚点内部编写的 Javascript 函数,如果我只是asp:Panel从表单中删除 ,它就可以完美地工作。

我尝试了很多解决方案,但似乎没有一个有效。他们之中有一些是:-

  1. 我捕获了锚点的焦点事件,在该事件中我为按键事件挂钩并使用另一个处理程序,event.preventDefault()以便仅在此处取消该事件并在锚点元素上删除该keypress事件。blur但这并不能阻止DefaultButtonPanel执行。

  2. asp:Panel在外部Panel中使用另一个并将其设置DefaultButtonImageButton替换锚元素(因为我们不能设置DefaultButtonanchor)。- 但这仍然会触发DefaultButton外部面板

我需要的是某种方法来禁用客户端DefaultButton的外部。asp:Panel这可能吗?

4

2 回答 2

1

不太确定您在做什么,但是当您向 an 添加 DefaultButton 属性时,asp:Panel它会在呈现的 div 中添加类似这样的内容:

onkeypress="javascript:return WebForm_FireDefaultButton(event, 'Button1')"

您可以通过执行以下操作使用 jQuery 删除该属性:

$("#Panel1").removeAttr("onkeypress");

(假设您的 Panel 的 ClientID 是Panel1)。希望对您有所帮助!

于 2011-08-03T12:46:48.267 回答
0

听起来您在使用 asp.net 控件生成 Javascript 时遇到了一个典型的限制。

我会编写您自己的函数来处理此表单的提交,然后将必要的逻辑放入其中。

于 2011-08-03T12:31:10.000 回答