深入理解表单脚本系列第三篇——选择文本

×

目录

[1]select() [2]select事件 [3]setSelectionRange()

前面的话

  表单是最早用来与用户交互的工具,具有丰富的控件和属性。基本上,它们通过各种控件和属性就可以解决大部分问题。但还有一些问题还是需要表单脚本来实现的,比如本文将要说到的选择文本

select()

  select()方法用于选择文本框(指type为text的input元素和textarea元素)中的所有文本,该方法不接受参数,且无返回值

<input id="text" value="123">
<button id="btn">选择文本</button>
<script>
btn.onclick = function(){
    text.select();
}
</script>

select事件

  与select()方法对应的,是一个select事件。在选择了文本框中的文本时,就会触发select事件

  不过关于什么时间触发select事件有分歧。IE8-浏览器中,只要用鼠标选择了一个字符,未释放鼠标前,就可以触发select事件;而其他浏览器中,要释放鼠标才会触发

<input id="text" value="123">
<script>
text.onselect = function(){
    this.style.backgroundColor = ‘pink‘;
}
</script>

setSelectionRange()

  setSelectionRange()方法用于选择文本框中的部分文本,这个方法接收两个参数:要选择的第一个字符的索引和要选择的最后一个字符之后的字符的索引(类似于substring()方法的两个参数)

  firefox浏览器使用该方法,可以选择文本,但却没有获取焦点;而其他浏览器使用该方法可以自动获取焦点

  [注意]IE8-浏览器不支持

<input id="text" value="1234567890">
<button id="btn">选择前3个字符</button>
<script>
btn.onclick = function(){
    text.focus();
    text.setSelectionRange(0,3)
}
</script>

  IE8-浏览器支持使用范围选择部分文本。要选择文本框中的部分文本,必须首先使用createTextRange()方法创建一个范围,并将其放在恰当的位置上。然后,再使用moveStart()和moveEnd()这两个范围方法将范围移动到位

  不过,在调用这两个方法以前,还必须使用collapse()将范围折叠到文本框的开始位置。此时,moveStart()将范围的起点和终点移动到了相同的位置,只要再给moveEnd()传入要选择的字符总数即可。最后一步,就是使用范围的select()方法选择文本

<input id="text" value="1234567890">
<button id="btn">选择前3个字符</button>
<script>
btn.onclick = function(){
    var range = text.createTextRange();
    range.collapse(true);
    range.moveStart(‘character‘,0);
    range.moveEnd(‘character‘,3);
    range.select();
}
</script>

兼容 

function selectText(textbox, startIndex, stopIndex){
    if(textbox.setSelectionRange){
        textbox.setSelectionRange(startIndex, stopIndex);
    } else if(textbox.createTextRange){
        var range = textbox.createTextRange();
        range.collapse(true);
        range.moveStart(‘character‘,startIndex);
        range.moveEnd(‘character‘,stopIndex);
        range.select();
    }
    textbox.focus();
}
时间: 2024-10-25 00:03:23

深入理解表单脚本系列第三篇——选择文本的相关文章

深入理解表单脚本系列第四篇——选择框脚本

× 目录 [1]select [2]option [3]添加选项[4]移除选项 前面的话 选择框是通过<select>和<option>元素创建的,又称为下拉列表框.为了方便与这个控件交互,除了所有表单字段共有的属性和方法外,javascript还提供了一些属性和方法.本文将详细介绍选择框脚本 <select> 首先介绍关于<select>元素的相关属性 multiple multiple属性表示是否允许多项选择 <select name="

深入理解表单脚本系列第一篇——表单对象

× 目录 [1]表单属性 [2]表单事件 [3]表单方法 前面的话 javascript最初的一个应用就是分担服务器处理表单的责任,打破处处依赖服务器的局面.尽管目前的web和javascript已经有了长足的发展,但web表单的变化并不明显.由于web表单没有为许多常见任务提供现成的解决方法,很多开发人员不仅会在验证表单时使用javascript,而且还增强了一些标准表单控件的默认行为.本文是表单脚本系列第一篇——表单对象 表单属性 在HTML中,表单是由form元素来表示的,而在javasc

深入理解表单脚本系列第二篇——表单字段

× 目录 [1]访问 [2]属性 [3]方法[4]事件 前面的话 表单字段又叫表单元素,表示表单所包含控件,如<input>.<select>等.本文将详细介绍表单字段的内容 访问 每个表单都有elements属性,该属性是表单中所有元素的集合.这个elements集合是一个有序列表,其中包含着表单中的所有字段,如<input>.<textarea>.<button>和<fieldset> 每个表单字段在elements集合中的顺序,

【Windows编程】系列第三篇:文本字符输出

上一篇我们展示了如何使用Windows SDK创建基本控件,本篇来讨论如何输出文本字符. 在使用Win32编程时,我们常常要输出文本到窗口上,Windows所有的文本字符或者图形输出都是通过图形设备接口(GDI)进行的,Windows的三大核心组件之一的GDI32.dll封装了所有的文本和图像输出. GDI基本知识 Windows下要绘图和输出文本,都是通过GDI(Graphics Device Interface,图形设备接口)完成的,GDI是windows在绘制图文时的设备上下文环境,包括画

深入理解DOM事件类型系列第三篇——变动事件

× 目录 [1]删除节点 [2]插入节点 [3]特性节点[4]文本节点 前面的话 变动(mutation)事件能在DOM中的某一部分发生变化时给出提示,这类事件非常有用,但都只能使用DOM2级事件处理程序,且由于浏览器兼容性不好,所以用的不广泛 删除节点 删除节点时,涉及到DOMNodeRemoved事件.DOMNodeRemovedFromDocument事件和DOMSubtreeModified事件这三个事件,下面将详细介绍 DOMNodeRemoved 在使用removeChild()或r

深入理解DOM事件机制系列第三篇——事件对象

× 目录 [1]获取 [2]事件类型 [3]事件目标[4]事件代理[5]事件冒泡[6]事件流[7]默认行为 前面的话 在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息.所有浏览器都支持event对象,但支持方式不同.本文将详细介绍事件对象 获取事件对象 [1]一般地,event对象是事件程序的第一个参数 [注意]IE8-浏览器不支持 //IE8-浏览器输出undefined,其他浏览器则输出事件对象[object MouseEvent] <div i

深入理解脚本化CSS系列第三篇——脚本化CSS类

前面的话 在实际工作中,我们使用javascript操作CSS样式时,如果要改变大量样式,会使用脚本化CSS类的技术,本文将详细介绍脚本化CSS类 style 我们在改变元素的少部分样式时,一般会直接改变其行间样式 <div id="test" style="height:100px;width:100px;background-color:blue;"></div> <script> test.onclick = functio

javascript高级程序设计 第十四章--表单脚本

javascript高级程序设计 第十四章--表单脚本 在HTML中表单由<form>元素表示,在js中表单对应的是HTMLFormElement类型,这个类型也有很多属性和方法:取得表单元素的引用还是为它添加id特性,用DOM操作来获取表单元素:提交表单:把<input>或<button>元素的type特性设置为"submit",图像按钮把<input>元素的type特性设置为"image",也可以调用submit(

JavaScript基础笔记(十)表单脚本

表单脚本 一.表单基础知识 JavaScript中表单对应的是HTMLFormElement类型,该类型继承自HTMLElement类型. 通过document.forms可以获得所有表单元素,通过数值索引和name特性可以获得其中特定的表单. 一)提交表单 单击提交按钮或者图像按钮就可以提交表单. 三种方式: <!--通用提交按钮--> <input type='submit' value='submit value'> <!--自定义提交按钮--> <butt