【问题标题】:jqueryMobile set focus on input field in popupjqueryMobile 将焦点设置在弹出窗口中的输入字段上
【发布时间】:2013-05-01 10:40:01
【问题描述】:

在我的 jquery 移动应用程序中,我想在打开弹出窗口后自动将焦点设置在输入字段上。输入字段在弹出窗口中,如下所示。焦点在开始时设置正确,但在弹出窗口完全降低后丢失。

    <!-- Link--><a onclick="$('#popup_input').focus()" href="#popup" data-iconpos="top" data-rel="popup" data-position-to="window" data-role="button" data-inline="false" data-transition="pop" data-icon="plus" data-theme="b">open</a>
<div data-role="popup" id="popup" data-overlay-theme="a" data-theme="c" data-dismissible="false" style="max-width:400px;" class="ui-corner-all">
            <div data-role="header" data-theme="a" class="ui-corner-top">
                 <h1>Popup</h1>

            </div>
            <div data-role="content" data-theme="d" class="ui-corner-bottom ui-content">
                 <h3 class="ui-title">Focused Field</h3>

                <p>
                    <input type="text" id="popup_input" />
                </p> <a href="#" data-role="button"data-rel="back">Close</a>

            </div>
        </div> 

http://jsfiddle.net/kx7Gz/

感谢您的帮助

感谢

【问题讨论】:

    标签: jquery jquery-mobile focus jquery-mobile-popup


    【解决方案1】:

    工作示例:http://jsfiddle.net/Gajotres/BknCc/

    您需要使用一点 javascript 来完成这项工作。不要使用内联 javascript 将焦点设置在字段上。而是等待弹出窗口完全创建并显示,然后再执行任何操作。

    HTML:

    <!DOCTYPE html>
    <html>
        <head>
            <title>jQM Complex Demo</title>
            <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no; target-densityDpi=device-dpi"/>
            <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
            <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>    
        </head>
        <body>
            <div data-role="page" id="index">
                <div data-theme="b" data-role="header">
                    <h1>Index page</h1>
                </div>
    
                <div data-role="content"> 
                    <a href="#popup" data-iconpos="top" data-rel="popup" data-position-to="window" data-role="button" data-inline="false" data-transition="pop" data-icon="plus" data-theme="b">open</a>
    
                    <div data-role="popup" id="popup" data-overlay-theme="a" data-theme="c" data-dismissible="false" style="max-width:400px;" class="ui-corner-all">
                        <div data-role="header" data-theme="a" class="ui-corner-top">
                            <h1>Popup</h1>
    
                        </div>
                        <div data-role="content" data-theme="d" class="ui-corner-bottom ui-content">
                            <h3 class="ui-title">Focused Field</h3>
    
                            <p>
                                <input type="text" id="popup_input" />
                            </p> <a href="#" data-role="button"data-rel="back">Close</a>
    
                        </div>
                    </div>
                </div>
            </div>    
        </body>
    </html>   
    

    Javascript:

    $(document).on('pagebeforeshow', '#index', function(){ 
        $( "#popup" ).popup({
            afteropen: function( event, ui ) {
                $('#popup_input').focus();
            }
        });
    });    
    

    【讨论】:

    • @Gajotres 如何在 jquerymobile 中关注'ul' filter 输入字段?
    • @Gajotres 我的问题略有不同。我在弹出窗口中打开一个表单。当我单击输入字段以输入数据时,字段被虚拟键盘隐藏。由于受阻,我无法单独提问。
    猜你喜欢
    • 2012-07-08
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多