
简而言之,我有一个为iPad构建的网络应用程序 – 它可以正常工作.但是,我有一个AJAX表单,它也应该提交它.但是,在回调和清除/重置表单后,“iPad”会自动关注输入并再次打开键盘.这远非理想.
我设法破解了它,但它仍然不完美.下面的代码在我的AJAX回调上运行,它可以正常工作 – 除了键盘的快速打开和关闭之外.
请注意,除非我使用setTimeout,否则我的代码将无效.另外,根据我的理解,document.activeElement.blur();只有在有点击事件时才有效,所以我通过Js触发了一个.
换句话说,我如何防止键盘在AJAX上调用WEB应用程序后重新启动?
PS:AJAX调用工作正常,不能在iPad上的Safari中打开键盘,只是Web应用程序模式.
这是我的代码:
hIDeKeyboard: function () { // iOS web app only,iPad IS_IPAD = navigator.userAgent.match(/iPad/i) != null; if (IS_IPAD) { $(window).one('click',function () { document.activeElement.blur(); }); setTimeout(function () { $(window).trigger('click'); },500); } } 也许这与我如何清理表单有关,所以这就是代码.注意,所有输入都有tabindex =“ – 1”.
clearForm: function () { // text,textarea,etc $('#campaign-form-wrap > form')[0].reset(); // checkBoxes $('input[type="checkBox"]').removeAttr('checked'); $('#campaign-form-wrap > form span.custom.checkBox').removeClass('checked'); // radio inputs $('input[type="radio"]').removeAttr('checked'); $('#campaign-form-wrap > form span.custom.radio').removeClass('checked'); // selects $('form.custom .user-generated-fIEld select').each(function () { var selection = $(this).find('option:first').text(),labelFor = $(this).attr('name'),label = $('[for="' + labelFor + '"]'); label.find('.selection-choice').HTML(selection); }); optin.hIDeKeyboard(); }解决方法 只是当我发布一个该死的赏金时,我想出来 – 错误的.去图…哈哈 对于遇到此问题的其他人,我在表单上有一个绝对的“覆盖”div(用作AJAX成功时显示的Thank You消息).显然,这导致键盘在AJAX调用后打开.出于UI原因,我将位置更改为position:fixed;在我最初的问题中强调的问题似乎神秘地解决了.很奇怪…很想知道为什么如果有人知道……残酷.
总结以上是内存溢出为你收集整理的jquery – iPad网络应用程序:在ajax调用后阻止输入焦点全部内容,希望文章能够帮你解决jquery – iPad网络应用程序:在ajax调用后阻止输入焦点所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)