【问题标题】:ModalPopupExtender setfocus issueModalPopupExtender 设置焦点问题
【发布时间】:2011-07-09 06:41:25
【问题描述】:

我正在使用 Ajax ModalPopupExtender 来显示一个弹出面板。该面板有一个TextBox。我想setfocus 到那个TextBox,同时弹出面板。是否有任何方法或机制可以将焦点设置到弹出扩展器。我尝试了很多方法来实现这一点,但都失败了。请帮助解决此问题。

【问题讨论】:

  • 是的,我得到了解决方案,在

标签: javascript asp.net ajax modalpopupextender


【解决方案1】:

在下面添加javascript:

function pageLoad() {
    $find('modalPopupBehaviorID').add_shown(function () {
        $get("<%= TextBox1.ClientID %>").focus();
    });
}

【讨论】:

  • 我需要在哪里调用这个 Javascript 函数?
  • 无处可去。这是在 Application.Init 和 endRequest 事件上调用的预定义函数名称。
  • 这必须有效。这可能不起作用的可能原因是,如果您没有将“modalPopupBehaviorID”更改为您的弹出扩展器行为 ID,或者没有将“TextBox1”ID 更改为您的文本框 ID。
【解决方案2】:

由于您尝试了许多方法都没有成功,因此焦点代码很有可能在面板和文本框存在之前执行了一点点。

setTimeout('document.getElementById("TextBox").focus();',1);

【讨论】:

    【解决方案3】:

    在打开弹出窗口时:

    document.getElementById("TextBox").focus();
    

    希望这会有所帮助(希望不要太明显,呵呵)

    【讨论】:

      【解决方案4】:

      rkw 的回答帮助我得出了一个复杂的解决方案。我必须使用超时和调用另一个函数才能正确地将焦点放在我的模态文本框中。不太复杂的解决方案对我不起作用。我相信,添加 setFocus() 可以让正确的执行队列达到我想要的目的。 ...希望这对其他人有帮助。就像 rkw 建议的那样,完成任务只需要一毫秒。

      //标记

                          <asp:Button ID="btnShow" runat="server" Text="Add New Test" OnClick="btnShow_OnClick" OnClientClick="return modalAdjust()"  /> 
      

      //javascript

        function setFocus() {
                    try {
                        document.getElementById('<%= TextBox_TestDescription.ClientID %>').focus();
                    } catch (e) {
                        alert(e);
                    }
                }
      
                function modalAdjust() {
                    try {
                        setTimeout("setFocus();", 1);
                    }
                    catch (e) {
                        alert(e);
                    }
                }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-22
        • 1970-01-01
        • 2011-04-15
        • 2011-01-02
        • 1970-01-01
        • 2011-03-07
        相关资源
        最近更新 更多