选择焦点并阻止iPhone 5上的进一步执行

时间:2016-07-27 08:30:37

标签: javascript ios jquery-mobile

在Jquery Mobile应用程序中,我遇到的问题只出现在iPhone 5设备上。其他iPhone版本(至少5以上)和所有其他平台都没有问题。 在页面内我有一个对话框。在对话框中有几个选择。 单击确定按钮或取消按钮(tsBtnOK,tsBtnCancel)时,选择宽度id' transJobType'被关注并等待用户选择,执行停止。 永远不会执行tbBtnOK的代码。如果没有代码在tsBtnOK上运行,也会发生同样的情况。

我试过了:

  • data-menu-native false / true no difference
  • data-prevent-focus-zoom,false / true no difference
  • 编码焦点到tsBtnOK,没有区别

请记住,这只发生在iPhone 5平台上,但与我测试的所有(3+)iPhone 5设备一致。

似乎当两个面板:' transWorkTypeDiv'和' transDescriptionDiv'隐藏它是有效的,因为选择仍然很快显示,但tsBtnOK上的代码被执行,完成后对话框关闭。

请注意,标记是ASPX页面的一部分,因此这就是原因 <%= GetLocalResourceObject ...>标签

非常感谢任何提示或想法

<div data-role="popup" id="tsTransDialog" data-overlay-theme="a" data-transition="flip" data-position-to="window" data-theme="<%=global_asax.JQMTheme%>" class="ui-corner-all">
            <div data-role="header" data-theme="a" class="ui-corner-top">
                <h1><%=GetLocalResourceObject("TimesheetTransDiaHeader") %></h1>
            </div>
            <div data-role="content" data-theme="d" class="ui-corner-bottom ui-content">
                <div id="tsTransDialogFields">
                    <div id="divWorkSelect" class="jobOnly ui-field-contain">
                        <label for="transJobType"><%=GetLocalResourceObject("TimesheetJobType") %></label>
                        <select name="transJobType" data-mini="true" data-native-menu="true" data-prevent-focus-zoom="true" onchange="tsOpenJobPicker();" id="transJobType">
                        </select>
                    </div>
                    <div class="jobOnly" data-role="fieldcontain">
                        <label for="transJobNo"><%=GetLocalResourceObject("TimesheetJobNo") %></label>
                        <div>
                            <input type="text" data-inline="true" id="transJobNo" placeholder="<%=GetLocalResourceObject("TimesheetExampleJobNo") %>" />
                            <div style="position: absolute; top: 25px; right: -4px">
                                <a href="javascript:tsOpenJobPicker();" data-role="button" data-inline="true" data-mini="true" data-iconpos="notext" data-icon="search"></a>
                            </div>
                        </div>
                    </div>
                    <div id="transStartTimeDiv" data-role="fieldcontain">
                        <label for="transStartTime"><%=GetLocalResourceObject("TimesheetStartTime") %></label>
                        <input type="text" data-inline="true" id="transStartTime" placeholder="<%=GetLocalResourceObject("TimesheetExampleTime") %>13:05" />
                    </div>
                    <div id="transStopTimeDiv" data-role="fieldcontain">
                        <label for="transStopTime"><%=GetLocalResourceObject("TimesheetStopTime") %></label>
                        <input type="text" data-inline="true" id="transStopTime" placeholder="<%=GetLocalResourceObject("TimesheetExampleTime") %>14:55" />
                    </div>
                    <div id="transHoursDiv" data-role="fieldcontain">
                        <label for="transHours"><%=GetLocalResourceObject("TimesheetHours") %></label>
                        <input type="text" data-inline="true" id="transHours" placeholder="<%=GetLocalResourceObject("TimesheetExampleTime") %> 2,5" />
                    </div>
                    <div id="transWorkTypeDiv" data-role="fieldcontain">
                        <label for="selectTransWorkType"><%=GetLocalResourceObject("TimesheetWorkType") %></label>
                        <select name="selectTransWorkType" data-mini="true" data-native-menu="true" data-prevent-focus-zoom="true"  id="selectTransWorkType"></select>
                    </div>
                    <div id="transDescriptionDiv">
                        <div id="transDescriptionDiv1" data-role="fieldcontain">
                            <label for="transDescription1"><%=GetLocalResourceObject("TimesheetTransDescription1") %></label>
                            <input type="text" data-inline="true" data-mini="true" id="transDescription1" name="transDescription1" />
                        </div>
                        <div id="transDescriptionDiv2" data-role="fieldcontain">
                            <label for="transDescription2"><%=GetLocalResourceObject("TimesheetTransDescription2") %></label>
                            <input type="text" data-inline="true" data-mini="true" id="transDescription2" name="transDescription2" />
                        </div>
                    </div>
                </div>
                <a id="tsBtnOK" href="javascript:tsTransInsert();" data-role="button" data-mini="true" data-inline="true" data-theme="<%=global_asax.JQMTheme%>"><%=GetLocalResourceObject("TimesheetTransUpdate") %></a>
                <a id="tsBtnCancel" href="#" data-role="button" data-rel="back" data-mini="true" data-inline="true" data-theme="<%=global_asax.JQMTheme%>"><%=GetLocalResourceObject("Cancel") %></a>
            </div>
        </div>

1 个答案:

答案 0 :(得分:0)

终于找到了解决方案,这绝不是逻辑,但我会回答我自己的问题,以防其他人发现自己处于相同的情况并偶然发现。 我在页面外移动了对话框tsTransDialog作为共享对话框,并在启动时启动它。 它使问题消失了。