【问题标题】:Setting default button in asp.net 2.0在 asp.net 2.0 中设置默认按钮
【发布时间】:2009-07-28 04:06:50
【问题描述】:

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

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

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

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

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

如果有人有更好的选择来实现这一点,请告诉我。

【问题讨论】:

    标签: asp.net button default


    【解决方案1】:

    您好!我也使用了很多第三方控件。关于这些控件要记住的一点是,它们最终只会发出 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>
    

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

    【讨论】:

      【解决方案2】:

      将验证码放在自己的&lt;asp:Panel&gt; 中,并为面板添加一个DefaultButton 属性,该面板的ID 为验证码的提交按钮。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        • 2011-01-05
        • 1970-01-01
        • 1970-01-01
        • 2018-02-27
        • 2016-11-28
        相关资源
        最近更新 更多