Javascript:用于选择焦点文本框内所有文本的跨浏览器解决方案
Javascript: cross browser solution for selecting all text inside a textbox on focus
我想要以下功能:
- 用户点击或加入文本框
- 文本框中的所有文本被选中,除非文本框已经有焦点,在这种情况下,默认的点击/选择功能应该发生
这可能吗?
$('input[type="text"]').live('focus', function () {
this.select();
});
http://jsfiddle.net/HmQxZ/13/Chrome和IE8选择所有的文本只有一瞬间
$('input[type="text"]').live('click', function () {
this.select();
});
http://jsfiddle.net/HmQxZ/12/Firefox和IE8选择所有文本,但在随后的点击中,文本仍处于选中状态。
*的工作,文本框有焦点后,点击它之间选择所有的文本和能够点击闪烁的插入符号的位置。
使用setTimeout
:
$('input[type="text"]').live('focus', function() {
var inp = this;
setTimeout(function() {
inp.select();
}, 1);
});
http://jsfiddle.net/HmQxZ/14/发生的是其他浏览器事件在你选择文本后设置选择。因此,通过等待一毫秒,您可以让所有浏览器事件完成,然后选择文本。
您可能需要添加
event.preventDefault();
return false;
到您的函数(第一个)。这可能会修复其他浏览器。
同时,将event
添加到函数签名中:
$('input[type="text"]').live('focus', function (event) {
如果你可以使用jQuery,那么你可以做一些像;
$("#myInputField").focus(function(){
// Select input field contents
this.select();
});
// Add this behavior to all text fields
$("input[type=text]").focus(function(){
// Select field contents
this.select();
});
引自此处
你应该记住这样做一个return false; event.stopPropagation(); event.preventDefault()
:
$('input[type="text"]').live('click', function (event) {
this.select();
event.stopPropagation();
event.preventDefault();
return false;
});
http://jsfiddle.net/7rYLV/相关文章:
- 可以转换显示属性吗?如果没有,什么'这是最好的解决方案
- iPad虚拟键盘-哪一个-javasctript解决方案
- AJAX HTTP基本身份验证解决方案
- 使用SeleniumWebdriver将文本复制到文件时出现编译错误的解决方案
- 在Python中抓取javascript渲染的文本的最快解决方案
- 文本编辑工具栏解决方案 (js),具有低级自定义
- 调整优雅的文本大小调整解决方案的性能,实现流畅/响应式设计
- :包含不区分大小写的解决方案在替换文本以突出显示时不起作用
- 在不更改布局的情况下替换文本的解决方案(jQuery)
- Jquery/Javascript 解决方案,用于将 wiki 文本转换为 HTML,反之亦然
- 需要解决方案在 NicEdit 将 HTML 文本插入实例
- 将文本框中的信息发布到其他解决方案的另一个文本框中
- 具有重叠文本范围的解决方案
- 通过客户端脚本更改时在服务器端访问只读文本框值的解决方案
- 快速输入文本框的解决方案
- 什么是最终用户可编辑的文本替换占位符的简单解决方案?
- Javascript:用于选择焦点文本框内所有文本的跨浏览器解决方案
- jquery乘以2个文本框,然后显示解决方案
- 我需要使用Javascript选择Javascript DOM文本节点的解决方案
- PHP 随机文本 - 是否有更好、更干净或更少服务器密集型的解决方案