0

我有第 3 方用户控件(验证码控件),其中包含验证码图像和文本框。

我在我的网页中使用上述用户控件。我的网页上有 3 个提交按钮(验证验证码、提交页面、添加用户)。当我使用鼠标单击验证验证码提交按钮时,我正在验证验证码是否为空并显示 javascript 警报。

当我在文本框中输入有效的验证码文本并在光标位于文本框中时按回车键时,问题就出现了。页面刚刚刷新。我无法将按键事件添加到文本框并调用验证验证码按钮事件,因为我正在使用无法修改的第 3 方用户控件。

此外, Page.ClientScript.RegisterHiddenField(...) 在我的情况下不起作用,因为我在同一页面内还有另外两个提交按钮。

剩下的唯一选择是将它们包含在面板中并设置默认按钮。

请让我知道是否有人有更好的选择来实现这一目标。

4

2 回答 2

0

问候!我也使用了很多第三方控件。关于这些控件要记住的一点是,它们最终只会发出 HTML。这意味着您可以使用 DOM 访问和附加事件处理程序,例如 onKeyPress。诀窍是确定您的控件创建者如何命名您要查找的控件,在本例中为 {textbox}。实现这一点的最简单方法是简单地运行页面并查看页面源代码。在那里您可以找到名称,因为它被呈现并发送到浏览器,之后您所要做的就是使用 document.getElementByID 来获取对象并设置您的处理程序

示例:

<script> 
     //Place this AFTER your textbox control is declared in the HTML
     //Get the textbox
     var textbox = document.getElementById('nameOfRenderedControlHere');
     //Assign the event handler and function you want it to call
     textbox.onclick = function() { validateCaptcha(); };

     function validateCaptcha()
     { //Do your Stuff here  }
</script>

那应该是它..没有测试,如果您遇到问题,请告诉我。

于 2009-07-30T03:31:36.687 回答
0

将验证码放在自己的位置,并使用验证码的提交按钮的 ID 为面板<asp:Panel>添加一个属性。DefaultButton

于 2009-07-30T03:36:12.030 回答