前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >表单文本框的使用(一) 选择文本

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

作者头像
赤蓝紫
发布2023-03-16 15:13:23
1.6K0
发布2023-03-16 15:13:23
举报
文章被收录于专栏:clzclz

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

小技能

  1. 通过document.forms来获取所有的表单元素
  2. 通过form.elements来获取表单的所有表单元素
  3. 表单有用的属性tabIndex:数值,表示该表单字段在按Tab键时的切换顺序,默认顺序是从小到大
代码语言:javascript
复制
<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属性无效

代码语言:javascript
复制
<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方法,可以选中文本框中全部内容,在调用该方法时会自动将焦点设置到文本框。

代码语言:javascript
复制
<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老版本除外)。

代码语言:javascript
复制
<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
select
取得选中文本

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

代码语言:javascript
复制
txa.addEventListener('select', (e) => {
    console.error('选中内容了')
    console.log(e.target.selectionStart)
    console.log(e.target.selectionEnd)
})
image-20220614215408161
image-20220614215408161

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

代码语言:javascript
复制
txa.addEventListener('select', (e) => {
    console.error('选中内容了')
    console.log('选中文本: ', txa.value.slice(txa.selectionStart, txa.selectionEnd))
})
select
select
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 表单文本框的使用(一) 选择文本
    • 小技能
      • 文本框
        • 选择文本
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档