对于解决光标消失的一个解决方法

博主最近在用easyUI框架,使用的IE11浏览器,利用$.dialog.open()创建一个新的窗口时,如果第一次在该窗口中保存了一次,回到主窗口,再次打开新窗口,里面的input标签获取不到鼠标的光标,因此就无法再次进行保存操作,必须刷新之后才行。这个问题困扰了博主好久,有的人说是因为“新窗口没有在body当中,是body的兄弟结点,因此无法点击,获取不了光标”,然而我在调试时发现并不是这样。其他原因也并没有找到,今天问高手时,告诉了我一个解决方案,“你直接利用js,让你的input获得焦点不就行了吗”,好吧,这个确实是一个方法,虽然不知道为什么不能显示,但解决方案出来了也是可以的,对于在工作中急需解决的问题可以这样做。

代码如下:

//yourInputclass是你的input标签的类名
$("input.yourInputclass").get(0).focus();

如果你的input不一定存在的话,可以加上判断:

var temp = $("input.yourInputClass");
if(temp!=null && temp && typeof(temp)!="undefined" && isNaN(temp)){
       temp.get(0).focus();
}

PS:对于js中val()和value的区别

val()是在有jQuery插件的时候才能用,value是在没有jQuery插件的情况下也能用。val()是jQuery根据原生JS里面的value写出来的函数
$(this).val(); 有四个重载版本
val() 获得第一个匹配元素的当前值。
val(array) check,select,radio等都能使用为之赋值
val(function(index, value)) 设置每一个匹配元素的值。
val(val) 设置每一个匹配元素的值。

this.value 获取 dom对象的值 如 text radio checkbox select 等。


因此,如果想获得class为"yourInputClass"的input中,第一个input中的值,有两种方式:

var temp = $("input.yourInputClass").get(0);
console.log(temp.value);
console.log($(temp).val());


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值