关于组件如何获得焦点问题

关于组件如何获得焦点问题,第1张

使用focus()方法来获得焦点

一般窗口组件都有此方法,如

window

文本

密码

按钮

单选按钮

复选按钮

选择菜单

选择菜单的子表项

文本区域

相应的聚焦的事件是 onFocus

代码

<Script>

function checkPassword(testObject) {

if (testObjectvaluelength < 4) {

alert("密码长度不得小于四");

testObjectfocus();

testObjectselect();

}

}

</Script>

1首先在wxml的输入框里面添加 adjust-position=false

2监听focus事件,通过获取 edetailheight (即d出的软键盘的高度),

把input的输入框的 bottom=edetailheight 2 + 'rpx' ;还须把content

的内容高度减去键盘的高度(值须setData下)。

3监听失焦(blur)事件,在该方法里,把input输入框的bottom重置为0;

且内容高度为原本的内容高度即可(值须setData下)。

以上三步可完美解决

因为所有的可视控件需要一个渲染的时间,所以渲染完被刷没了

解决方式:(假设textfield的id是name)加个延迟时间就好!

ExtgetCmp('name')focus(false, 100);

或者

ExtgetCmp('name')focusdefer(100, ExtgetCmp('name'));

如果是extjs的field , 都有 blur , focus 的事件

var field = Extcreate("ExtformfieldText" , {

    listeners:{

        blur: function(){

            //失去焦点事件

        } , 

        focus: function(){

            //获取焦点

        }

    }

});

 

//如果是通过extjs *** 作当前页面中的input

//这是Input

//<input type='text' id="a">

var el = Extget("a");

aon({

        blur: function(){

            //失去焦点事件

        } , 

        focus: function(){

            //获取焦点

        }

});

其实不管用哪种方法,其原理都是跟body onload()大同小异的,而其中body onload()才是最简便快捷的方式:

<body onload="documentgetElementById("baidubox")focus();">

或者把onload单独脱离出来:

<script>

windowonload = function() {documentgetElementById("baidubox")focus();}

</script>

以上就是关于关于组件如何获得焦点问题全部的内容,包括:关于组件如何获得焦点问题、底部输入框获取焦点上推页面、如何在Ext.Window显示后,其中里面的某一个文本框自动获得焦点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9693603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存