2009-07-28 120 views
0

我有第三方用户控件(一个验证码控件),它有一个验证码图像和一个文本框。在asp.net 2.0中设置默认按钮

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

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

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

只剩下选项是将它们放在面板中并设置默认按钮。

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

回答

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> 

这应该是..经过测试,让我知道,如果你遇到问题。

0

将验证码放在它自己的<asp:Panel>中,并为验证码提交按钮的ID添加一个DefaultButton属性。