天天看点

window8 metro应用Winjs开发中的输入框聚焦问题

经过这几天天的开发测试,在win8平板上通过js、jquery聚焦到某个输入框上,用弹出的键盘输入的文字不能输入到聚焦的输入框上,而是输出到页面的顶部。不知道是怎么回事,测试了很多次都是这样。这个应该是windows metro 应用的一个bug。

但是使用以下代码却是可以聚焦到输入框,而且输入正常。

<html>
<body>
<div class="demo">
<h2>DEMO</h2>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $("#t1").focus();
    $("#b1").click(function(){
        changeFocus('t1');
        return false;
    });
    $("#b2").click(function(){
        changeFocus('t2');
        return false;
    });
});
function changeFocus(id){
    var v = "#" + id;
    $(v).focus();
}
</script>
 <form id="myForm" method="post" action="http://www.51shuaige.com/post.php">
    <input id="t1" type="text"/>
    <input id="t2" type="text"/>
    <br/><br/>
    <input id="b1" type="button" value="Change Focus1"/>
    <input id="b2" type="button" value="Change Focus2"/>
 </form>
 </div>
</body>
</html>
           

对比了一下原来的代码:

原来的代码是使用div来响应点击事件,然后通过jquery把焦点聚焦到输入框的,而通过测试的代码是使用input,类型为button的按钮来做响应点击事件的。原来如此。特留下此文做个留念。

继续阅读