首先明确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""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上面,这样就可以完美实现表单页面显示和隐藏软键盘,同时依然可以返回上一页的效果。