|
想在点输入框的时候,先取个值填上,如果是用户期待的值,就省的手工输入了,如果不是再在默认值的基础上改。试了半天,只是部分实现了。觉得应该是个小问题,但卡住了,真愁人。
问题1:input的focus里用val("xx")给自己赋值,光标一离开值就消失,我别的同事试了也是这样。
问题2:好像是焦点进入输入框以后,光标在里面闪烁了,再用 val("xx")赋值就不起作用了,输入框中体现不出变化,也谈不上光标离开后消失了。我真正的需求是点输入框在focus事件中执行一个异步操作,在操作的回调函数里给input赋值。一开始也是赋不进去,后来在focus事件中加上.blur(),让他既触发focus事件,又立刻失去焦点,这样回调函数中能赋值进去了。由于是在焦点离开以后赋的值,所以也就不存在光标离开值消失的问题了。但!那输入框基本变成只读的了,因为没办法获得焦点了呀。
问题2的代码是这样的:
Model.prototype.input15Focus = function(event){
var self = this;
$(self.getElementByXid('input15')).blur();
//以sqlite为例,是异步的,并不一定真的是sqlite操作,别的异步操作也都差不多
SqliteUtil.executeSql(db, "SELECT * FROM tab1 ",
function (res) {
$(self.getElementByXid('input15')).val(res.rows.length+"条");
//试图让焦点再回到input组件里,但调用不成功
// $(self.getElementByXid('input15')).focus();
},
null
);
至于问题1,我建个最简单的页面,随便放两个input控件,在focus或click事件中用 val()或text()赋值,光标离开后值就没了。放个按钮,点按钮给input赋值也一样。版主说在他那里就没这现象,不知道是我的环境有什么不同,明天我重装一遍系统试试。
|
|