欢迎访问 夜阑小雨 我的学习碎片档案,这里记录了我的学习内容和工作中经验,希望给您带去帮助。

phonegap:软键盘的隐藏和显示

Android开发 夜阑小雨 3761℃ 0评论

 

phonegap开发过程中如果遇到表单页面,会出现这样的情况,点击输入框,会弹出软键盘,输入内容,然后按返回键就回去隐藏软键盘,但是同时页面也会随之返回上一个页面。如何解决这个bug呢?

 

首先明确2个方法:

document.addEventListener(‘backbutton’,eventBackButton, false);重置返回键监听

document.removeEventListener(‘backbutton’,eventBackButton, false); 取消返回键监听

那么解决办法就是:在输入的时候去掉返回键监听,这样按下返回键就不会返回上一页,然后在加上返回键监听就行了。

 

废话不说接着看:

html“

 

<form  id="form_buy">
             <p>您的姓名:<input type="text" name="consumer_name"class="inputClass consumer_name" onFocus="add();" onBlur="document.addEventListener(‘backbutton’,eventBackButton, false);"> <span class="need">*</span></p>

<p><input type="submit" value="订购" id="bmit" class="ui-btn ui-btn-fullsize" onclick="buy();return false;"></p>
           </form>

 

js:

function add(){document.removeEventListener(‘backbutton’,eventBackButton, false);
            document.addEventListener(‘backbutton’,bb, false);
            }
        function bb(){
                var oInput = document.getElementById("bmit");
                oInput.focus(); 
            }

这里面我用来 onfocus 和 onblur,即:在光标聚焦到input上是去掉监听这样返回键就失去效果,而input失去焦点的时候在增加上监听,这样就可以。

但是问题还是来了 即使去掉了监听,按返回键软键盘隐藏了,但是光标依然还在input上面,这时再按返回键却不能返回上一个页面,因为’backbutton’ 已经没有监听了事件了,所以我这里就在第一次按下返回键的时候,把焦点移动掉其他没有加onfcuos的input上面,这样就可以完美实现表单页面显示和隐藏软键盘,同时依然可以返回上一页的效果。

转载请注明:夜阑小雨 » phonegap:软键盘的隐藏和显示

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 博主我崇拜你
    alian2013-10-14 19:43 回复