火狐下input焦点无法重复获取问题的解决方法
今天遇到了一个很棘手的问题,就是在做一些输入框的验证的时候,我这边项目的业务逻辑就是当我选中某个select的某个特定option的时候,需要显示出一个input输入框让用户输入东西,但是如果用户啥也不做,就必须弹出警告框让用户输入,等其输入后,我这边再将input隐藏掉。
因此,便产生了如下问题,input输入框显示的时候,需要自动获取焦点,此时,我是用的
代码如下:
document.getElementById('id').focus();
恩,尝试了一下,效果很好,不禁心中大喜,搞定!
但是天算不如人算,在我进行用火狐测试的时候,完蛋了,第一次刚将input显示出来的时候是好用的,但是随后我关闭alert提醒框的时候,input无法获取焦点了,囧!
问题棘手,又不明其所以,so,小小的查了一下网上大神们的解答方式,发现了如下一招,试验了一下,果然很好用!
document.getElementByIdx('id').focus();
window.setTimeout(function () { document.getElementById('id').focus();}, 0);
爽,问题解决!
setTimeout是指在载入后延迟指定时间后执行前面的表达式,当然在这里是延迟0ms之后执行function。
当我只是解决了这个问题,仍然不知道为什么在火狐下这样就能解决,如有哪位大神晓得,给下留言,让晚生学习一下,不胜感激!
相关推荐
-
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
复制代码 代码如下: <input value="请输入用户名" type="text"> <input value="请输入密码" type="text"> <input value="提交" type="submit"> <script> $(function(){ //输入框中文字颜色控制 $("input:not(:las
-
调用DOM对象的focus使文本框获得焦点
由于JQuery中获得的对象还是JQuery对象,对其使用focus()只是使该对象获得onFocus()函数,不能是对象获得焦点,所以要使对象获得焦点,应该调用DOM对象的focus 方法,即: 复制代码 代码如下: $("#id")[0].focus(); 需要注意两个函数之间的区别: 复制代码 代码如下: $("#id").focus(); $("#id")[0].focus(); 第一个是增加onFocus()时间,一个是使DOM对象获得
-
文本框获得焦点和失去焦点的判断代码
文本框失去焦点事件.获得焦点事件 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect:当文字加亮后,产生该文件 onpropertychange 当属性改变发生该事件 无论粘贴 keyup onchange等,最为敏感 先来看javascript的直接写在了input上 复制代码 代码如下: <input name="pwuser" type="text" id
-
鼠标焦点离开文本框时验证的js代码
利用js来验证文本框的值 复制代码 代码如下: <script> function onblurs(){ if(frm.name.value==""){ alert("请输入您的名字!"); }else if(frm.funny.value==""){ alert("爱好不得为空哦!"); } } </script> <form name="frm"> <tr>
-
文本框(input)获取焦点(onfocus)时样式改变的示例代码
摘要:许多重视用户体验的设计师都希望给文本框(input)加上获取焦点或者鼠标悬停时的样式切换效果.其实很简单,我们只需要获取页面上的文本框,加上onfocus事件或者其他对应的事件即可.本文介绍了如何在获取焦点时切换样式,明白原理后,实现其他效果就很简单了. 许多重视用户体验的设计师都希望给文本框(input)加上获取焦点或者鼠标悬停时的样式切换效果.其实很简单,我们只需要获取页面上的文本框,加上onfocus事件或者其他对应的事件即可.本文介绍了如何在获取焦点时切换样式,明白原理后,实现其他
-
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
功能实现: 用户在输入文字时,如果能高亮显示正在输入的那个文本框的话,会更人性化些,下面就使用jQuery来实现. 实现原理: 在document加载完成后(ready),添加input的focus和blur事件,并进行增加和删除样式的操作. 代码示例: 复制代码 代码如下: <html> <head><title></title> <style type="text/css"> .redBack{}{ color:white
-
js实现文本框中焦点在最后位置
在一般的程序中.程序员做输入框内容正确性检测时一般喜欢通过判断内容的合法性来确定焦点框. 如: 复制代码 代码如下: if(obj.value==""){ obj.focus(); return false;} 这样当哪一项输入框为空是就将焦点移动那一项输入框..这项功能使用起来非常方便..但是存在一个小小的问题... 那就是obj.focus()将焦点移动到输入框后,会将文字光标(就是一闪一闪的竖线)移动到这个输入框的第一个字符的位置...就上面的判断而言..如果文本框中没有
-
在js(jquery)中获得文本框焦点和失去焦点的方法
先来看javascript的直接写在了input上 复制代码 代码如下: <input name="pwuser" type="text" id="pwuser" class="input" value="楼盘账号" onBlur="if(this.value=='') this.value='楼盘账号';" onFocus="if(this.value=='楼盘账号')
-
input输入框鼠标焦点提示信息
问题如标题: 鼠标点击到输入框(input)里的时候,输入框的提示消失,鼠标再移开,输入框提示出现.如图所示: 做法如下: 复制代码 代码如下: <input type="text" name="name" id="name" class="ind_cont_input ind_cont_inputioce1" onfocus="if (value =='请输入2-5个中文名字'){value =''}&quo
-
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
input 输入框获得和失去焦点时隐藏或者显示文字我们先看下效果图 输入框默认状态: 输入框获取焦点状态: 大家可以看效果图的搜索输入框,默认显示着"用户名/Email"的提示,当这个 input 输入框获得焦点时,就自动清空等待用户输入,当用户啥也没输入就离开这个 input 输入框时,输入框内又再次显示"用户名/Email"的提示.是不是很常见?很多搜索.登录.表单都会用到这个效果,但是我看了N多个网站,有90%以上是这么实现的: 复制代码 代码如下: &l
随机推荐
- 黑客如何给你的系统种木马
- 在Golang代码中如何自动生成版本号的方法示例
- JQuery 的跨域方法推荐_可跨任何网站
- Jquery ajax传递复杂参数给WebService的实现代码
- jQuery 实时保存页面动态添加的数据的示例
- Java获取网络文件并插入数据库的代码
- PHP中使用SimpleXML检查XML文件结构实例
- zend framework配置操作数据库实例分析
- php 中的closure用法详解
- 详解JavaScript中的blink()方法的使用
- javascript parseInt 函数分析(转)
- MySQL实现远程登录的方法
- Myeclipse 自动生成可持久化类的映射文件的方法
- Mysql使用insert插入多条记录 批量新增数据
- Shell实现多级菜单系统安装维护脚本实例分享
- Win7 IIS7.5运行ASP时出现500错误的解决办法
- jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
- CSS Filter背景透明提示
- 纯CSS实现的竖向导航菜单
- 完美解决Spring声明式事务不回滚的问题