表单文本框的使用(一) 选择文本

简介: 表单文本框的使用(一) 选择文本

小技能

  1. 通过document.forms来获取所有的表单元素
  2. 通过form.elements来获取表单的所有表单元素
  3. 表单有用的属性tabIndex:数值,表示该表单字段在按Tab键时的切换顺序,默认顺序是从小到大
<form action="">
    <input type="text" tabindex="1">
    <input type="text" tabindex="3">
    <input type="text" tabindex="2">
</form>

文本框

文本框有两种:

  • input:单行文本框。size属性指定宽度,表示一次可显示的字符数(实际能显示多一点);maxlength属性指定最多字符数;value属性指定文本框的初始值。
  • textarea:多行文本框。rows指定文本框的高度;cols指定文本框的宽度,不支持size属性。初始值应在<textarea></textarea>之间,使用value指定无效。

inputtextarea都会在value属性保存自己的内容,可设置和读取文本框的值。在textarea中设置value属性无效

 <div class="input-box">
    <input type="text" value="clz" size="10" maxlength="10">
</div>
<div class="txa-box">
    <textarea type="textarea" rows="4" cols="8" maxlength="20">clz</textarea>
</div>

选择文本

select方法

文本框有一个select方法,可以选中文本框中全部内容,在调用该方法时会自动将焦点设置到文本框。

<body>
    <div class="input-box">
        <input type="text" value="clz" size="10" maxlength="10">
    </div>
    <div class="txa-box">
        <textarea value="123" rows="4" cols="8" maxlength="20">clz</textarea>
    </div>
    <button onclick="myclick()">选中多行文本框内容</button>

    <script>
        const txa = document.getElementsByTagName('textarea')[0]

        function myclick(e) {
            txa.select()
        }
    </script>
</body>

select事件

当选中文本框中的文本时,会触发select事件。select事件会在用户选择完文本后立即触发(IE老版本除外)。

<body>
    <div class="txa-box">
        <textarea value="123" rows="4" cols="8" maxlength="20">clz</textarea>
    </div>

    <script>
        const txa = document.getElementsByTagName('textarea')[0]

        txa.addEventListener('select', (e) => {
            console.error('选中内容了')
        })
    </script>
</body>

select

取得选中文本

上面我们只是选中了文本,但是不知道选中了什么。HTML5进行了扩展,添加了两个属性selectionStartselectionEnd。分别是文本选取的起点和终点。

txa.addEventListener('select', (e) => {
    console.error('选中内容了')
    console.log(e.target.selectionStart)
    console.log(e.target.selectionEnd)
})

image-20220614215408161

所以可以直接使用slice方法得到选中文本。

txa.addEventListener('select', (e) => {
    console.error('选中内容了')
    console.log('选中文本: ', txa.value.slice(txa.selectionStart, txa.selectionEnd))
})

select

目录
相关文章
|
安全 NoSQL 关系型数据库
使用cnpm搭建企业内部私有NPM仓库
cnpm是企业内部搭建npm镜像和私有npm仓库的开源方案。它同时解决了现有npm架构的一些问题。
1148 0
使用cnpm搭建企业内部私有NPM仓库
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(上)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
380 0
|
JavaScript 前端开发 C++
关于Vue2里 v-for和v-if一起用的时候会出现的问题
在 Vue 2 中,`v-for` 和 `v-if` 一起使用时可能会出现一些不可预料的问题,因为 `v-for` 的优先级高于 `v-if`,导致 `v-if` 会在每次循环中都执行。这可能导致条件渲染的文本多次显示。本文通过一个具体案例详细解析了这一问题,并提供了两种解决方案:1. 在 `del` 方法中处理逻辑,当 `list.length` 小于等于 2 时清空列表;2. 将 `v-else` 改为 `v-if=&quot;list.length === 2&quot;`,避免多次渲染。最后,作者建议在 2024 年使用 Vue 3,因为它已经修复了这些问题并提升了性能。
145 0
|
Kubernetes Cloud Native 持续交付
云原生技术探索:从容器化到微服务的实践之旅
【8月更文挑战第31天】 在这个由快速迭代和持续交付驱动的时代,云原生技术已经成为现代软件开发的基石。本文将带你深入理解云原生的核心概念,包括容器化和微服务架构,并通过实际代码示例展示如何将理论应用到实践中。我们将一起构建一个简单的微服务应用,了解如何在Kubernetes集群上部署和管理它,从而揭示云原生技术的强大力量和灵活性。
基于粒子群优化的图像融合算法matlab仿真
这是一个基于粒子群优化(PSO)的图像融合算法,旨在将彩色模糊图像与清晰灰度图像融合成彩色清晰图像。在MATLAB2022a中测试,算法通过PSO求解最优融合权值参数,经过多次迭代更新粒子速度和位置,以优化融合效果。核心代码展示了PSO的迭代过程及融合策略。最终,使用加权平均法融合图像,其中权重由PSO计算得出。该算法体现了PSO在图像融合领域的高效性和融合质量。
|
Go API 区块链
docker部署IPFS私有链
docker部署IPFS私有链
elementUI el-tabs 实现动态选项卡页面效果
elementUI el-tabs 实现动态选项卡页面效果
|
安全 Ubuntu 虚拟化
VMware12下安装Windows7虚拟机---详细多图教程(沙盒环境)
VMware12下安装Windows7虚拟机---详细多图教程(沙盒环境)
345 0
|
数据采集 人工智能 算法
头一回见!提升10倍效率,阿里给业务校验平台插上了AI的翅膀
实时业务校验平台作为阿里集团老牌的业务审计系统,覆盖了集团绝大部分的业务对账场景,在线上问题及时发现以及减少集团资损上发挥着巨大作用,保障了各个系统的业务稳定性。本文主要介绍实时业务校验平台(以下简称BCP: Business Check Platform)在智能化方面的创新和实践。
17672 90
|
存储 缓存 Java
(七)Spring源码解析:Spring事务
(七)Spring源码解析:Spring事务
324 1