火狐下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。
当我只是解决了这个问题,仍然不知道为什么在火狐下这样就能解决,如有哪位大神晓得,给下留言,让晚生学习一下,不胜感激!
相关推荐
-
文本框(input)获取焦点(onfocus)时样式改变的示例代码
摘要:许多重视用户体验的设计师都希望给文本框(input)加上获取焦点或者鼠标悬停时的样式切换效果.其实很简单,我们只需要获取页面上的文本框,加上onfocus事件或者其他对应的事件即可.本文介绍了如何在获取焦点时切换样式,明白原理后,实现其他效果就很简单了. 许多重视用户体验的设计师都希望给文本框(input)加上获取焦点或者鼠标悬停时的样式切换效果.其实很简单,我们只需要获取页面上的文本框,加上onfocus事件或者其他对应的事件即可.本文介绍了如何在获取焦点时切换样式,明白原理后,实现其他
-
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
input 输入框获得和失去焦点时隐藏或者显示文字我们先看下效果图 输入框默认状态: 输入框获取焦点状态: 大家可以看效果图的搜索输入框,默认显示着"用户名/Email"的提示,当这个 input 输入框获得焦点时,就自动清空等待用户输入,当用户啥也没输入就离开这个 input 输入框时,输入框内又再次显示"用户名/Email"的提示.是不是很常见?很多搜索.登录.表单都会用到这个效果,但是我看了N多个网站,有90%以上是这么实现的: 复制代码 代码如下: &l
-
input输入框鼠标焦点提示信息
问题如标题: 鼠标点击到输入框(input)里的时候,输入框的提示消失,鼠标再移开,输入框提示出现.如图所示: 做法如下: 复制代码 代码如下: <input type="text" name="name" id="name" class="ind_cont_input ind_cont_inputioce1" onfocus="if (value =='请输入2-5个中文名字'){value =''}&quo
-
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
复制代码 代码如下: <input value="请输入用户名" type="text"> <input value="请输入密码" type="text"> <input value="提交" type="submit"> <script> $(function(){ //输入框中文字颜色控制 $("input:not(:las
-
js实现文本框中焦点在最后位置
在一般的程序中.程序员做输入框内容正确性检测时一般喜欢通过判断内容的合法性来确定焦点框. 如: 复制代码 代码如下: if(obj.value==""){ obj.focus(); return false;} 这样当哪一项输入框为空是就将焦点移动那一项输入框..这项功能使用起来非常方便..但是存在一个小小的问题... 那就是obj.focus()将焦点移动到输入框后,会将文字光标(就是一闪一闪的竖线)移动到这个输入框的第一个字符的位置...就上面的判断而言..如果文本框中没有
-
文本框获得焦点和失去焦点的判断代码
文本框失去焦点事件.获得焦点事件 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect:当文字加亮后,产生该文件 onpropertychange 当属性改变发生该事件 无论粘贴 keyup onchange等,最为敏感 先来看javascript的直接写在了input上 复制代码 代码如下: <input name="pwuser" type="text" id
-
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
功能实现: 用户在输入文字时,如果能高亮显示正在输入的那个文本框的话,会更人性化些,下面就使用jQuery来实现. 实现原理: 在document加载完成后(ready),添加input的focus和blur事件,并进行增加和删除样式的操作. 代码示例: 复制代码 代码如下: <html> <head><title></title> <style type="text/css"> .redBack{}{ color:white
-
调用DOM对象的focus使文本框获得焦点
由于JQuery中获得的对象还是JQuery对象,对其使用focus()只是使该对象获得onFocus()函数,不能是对象获得焦点,所以要使对象获得焦点,应该调用DOM对象的focus 方法,即: 复制代码 代码如下: $("#id")[0].focus(); 需要注意两个函数之间的区别: 复制代码 代码如下: $("#id").focus(); $("#id")[0].focus(); 第一个是增加onFocus()时间,一个是使DOM对象获得
-
鼠标焦点离开文本框时验证的js代码
利用js来验证文本框的值 复制代码 代码如下: <script> function onblurs(){ if(frm.name.value==""){ alert("请输入您的名字!"); }else if(frm.funny.value==""){ alert("爱好不得为空哦!"); } } </script> <form name="frm"> <tr>
-
在js(jquery)中获得文本框焦点和失去焦点的方法
先来看javascript的直接写在了input上 复制代码 代码如下: <input name="pwuser" type="text" id="pwuser" class="input" value="楼盘账号" onBlur="if(this.value=='') this.value='楼盘账号';" onFocus="if(this.value=='楼盘账号')
随机推荐
- document.createElement()用法
- MongoDB数据库的特色和优点介绍
- Select data from an Excel sheet in MSSQL
- ASP.NET 4中的可扩展输出缓存(可以缓存页面/控件等)
- ASP.NET中为GridView添加删除提示框的方法
- PHP处理excel cvs表格的方法实例介绍
- Python 如何访问外围作用域中的变量
- Python Tkinter简单布局实例教程
- 实战 J2EE 开发购物网站 二
- C# 获取打印机当前状态的方法
- MVC4制作网站教程第二章 用户注册2.1
- JS获取select的value和text值的简单实例
- Ruby中编写类与模块的风格指南
- JavaScript的Polymer框架中dom-repeat与VM的相关操作
- MySQL的C语言API接口
- C#模拟http 发送post或get请求的简单实例
- java 基础知识之网络通信(TCP通信、UDP通信、多播以及NIO)总结
- SPFA 算法实例讲解
- bootstrap treeview 扩展addNode方法动态添加子节点的方法
- 浅谈Slf4j与其他日志系统兼容的使用方法