虚拟键盘(Keith Wood)在JQuery对话框内的文本框上初始化时,每次点击都会自动关闭
Virtual Keypad (Keith Wood) closes itself on every click when initialized on textboxes inside a JQuery Dialog
更新--jsfiddle:http://jsfiddle.net/bLURx/4/
在我的主屏幕上,我有一个运行良好的虚拟键盘的内联实例。
此屏幕上的表中有一些链接,这些链接将打开包含另一个表的JQuery对话框,其中一列是每行的文本框。我为生成的每个文本框初始化一个小键盘,这样用户就会为每个框都有一个弹出式小键盘来输入一些数字。
到目前为止一切都很顺利。我不得不更改弹出键盘的z索引,使其显示在对话框上方,但现在我可以单击每个框,键盘将按原样滑入。每当我单击键盘上的任何按钮时,就会出现问题。单击任何按钮后,每个小键盘都会自行关闭,并在表中顶部行上方打开一个小键盘。单击后,顶部键盘将保持打开状态,但它不会向任何字段添加文本。
对话框/初始化弹出键盘的jQuery功能:
$(function () {
var createdPads = [];
$('#dialog').dialog({
autoOpen: false,
modal: true,
width: '95%',
height: 1000,
open: function (event, ui) {
$('#dialog :text').each(function () {
$(this).keypad({
keypadOnly: false,
keypadClass: 'miniPad'
});
createdPads.push(this);
});
},
close: function (event, ui) {
for (i = 0; i < createdPads.length; i++) {
createdPads[i].remove();//removing created keypads because they were affecting the previous inline keypad
}
$('#<%=enterNumberBox.ClientID%>').blur();//removing focus from original field
var tbl = $('#<%=gvData.ClientID%>');
if (tbl.is(":visible")) { //scrolling back down to results after dialog close
$(window).scrollTop(tbl.position().top);
}
}
});
});
弹出式键盘的CSS类:
.miniPad{
z-index: 9999 !important;
}
HTML:
<div id="dialog" style="display: none; text-align: center;">
<span class="ui-helper-hidden-accessible"><input type="text"/></span><!--to prevent autofocus-->
<asp:GridView runat="server" ID="gvItemData"></asp:GridView>
<asp:Button ID="updateStagedButton" runat="server" Text="Update" OnClientClick="return validateUpdate();" />
</div>
一旦我有足够的代表,我会添加一张我正在谈论的内容的截图。
谢谢!
OK解决了它:-(
演示:http://jsfiddle.net/robschmuecker/Tut8M/
据推测,这确实与对话有关。默认情况下,它会阻止与非其子元素的任何交互,这会在它们被绝对定位为时导致问题
http://api.jqueryui.com/dialog/#method-_allowInteraction
值得庆幸的是,我们可以通过设置_allowIteraction()
功能
$.ui.dialog.prototype._allowInteraction = function (e) {
return !!$(e.target).parents(".miniPad") || this._super(event);
};
这会检查被交互的元素是否有一个类为miniPad
的父元素,如果有,则允许。这很好地解决了问题。
相关文章:
- 使用javascript函数在页面初始化后加载jquery
- 未捕获错误:无法在初始化之前调用方法;
- 如何在剑道网格初始化后设置pageSizes
- React redux初始化功能,无论状态变化如何
- 为什么可以't Protractor在自动初始化的Angular网站上查找Angular
- 尝试初始化()Spine's控制器和故障
- Angular.js延迟控制器初始化
- 对插件初始化后动态加载的元素进行样式设置
- Angular JS控制器初始化错误
- 在XMLHttpRequest之后重新初始化jQuery
- ember-js组件初始化不同的函数
- Youtube JavaScript API不是't正在初始化
- 函数无法识别初始化的变量
- datepicker引导程序再次初始化
- jquery数据表在初始化时设置宽度
- 如何使用app和secret进行安全的解析初始化
- 从javascript中再次初始化c变量
- ng重复中的ng模型-初始化唯一作用域属性
- 正在Ajax调用上初始化主干视图
- 虚拟键盘(Keith Wood)在JQuery对话框内的文本框上初始化时,每次点击都会自动关闭