JS--JavaScript选择文本(select事件)、检测字段值(change事件)

网页防复制技术原理与破解实战:从事件监听到网络抓取 在Web前端开发中,用户交互与内容保护是常见的需求。其核心原理通常基于浏览器的事件模型与CSS渲染机制,例如通过JavaScript监听`contextmenu`、`selectstart`、`copy`等事件,并调用`preventDefault()`方法阻止默认行为;或利用CSS属性如`user-select: none`直接禁用文本选择。这些技术旨在平衡用户体验与内容版权保护,在文档型网站、知识付费平台及内容聚合应用中尤为常见。从工程实践角度看,理解这些机制有助于开发者实现更精细的权限控制,也为技术爱 阅读详情
AI摘要

本文探讨了在HTML表单中如何使用select、change、focus、blur等事件来监测文本框的选择操作和字段值的变化,以及如何通过这些事件进行用户交互设计,包括动态显示选择的文本、实时更新字段值、以及输入验证。

选择文本

当在文本框或文本区域内选择文本时,将触发select事件。通过该事件,可以设计用户选择操作的交互行为。

在IE9+、Opera、Firefox、Chrome和Safari中,只有用户选择了文本,而且要释放鼠标,才会触发select事件;但是在IE8及更早版本中,只要用户选择了一个字母,不必释放鼠标,就会触发select事件。另外,在调用select()方法时也会触发select事件。

示例:选择第一个文本框中的文本时,在第二个文本框中动态显示用户所选择的文本。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<input type="text" id="a" value="请随意选择字符串" />
		<input type="text" id="b"/>
		<script>
			var a = document.getElementsByTagName("input")[0];
			var b = document.getElementsByTagName("input")[1];
			a.onselect = function(){
				var o = document.selection.createTextRange();//创建一个选择区域
				if(o.text.length > 0){//如果选择区域存在文本
					b.value = o.text;//赋值给b
				}else{
					p1 = a.selectionStart;//获取文本框中选择的初始位置
					p2 = a.selectionEnd;//获取文本框中选择的结束位置
					b.value = a.value.substring(p1, p2)
				}
			}
		</script>
	</body>
</html>
字段值变化检测

change事件类型是在表单元素的值发生变化时触发,它主要用于input、select和textarea元素。对于input和textarea元素来说,当它们失去焦点且value值改变时触发;对于select元素,在其选项改变时触发,也就是说不失去焦点,也会触发change事件

示例1:当在第一个文本框输入或修改值时,第二个文本框会立即显示第一个文本框的值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<input type="text" id="a"/>
		<input type="text" id="b"/>
		<script>
			var a = document.getElementsByTagName("input")[0];
			var b = document.getElementsByTagName("input")[1];
			a.onchange = function(){
				b.value = this.value;
			}
		</script>
	</body>
</html>

在这里插入图片描述

示例2:在单选按钮选项组中动态显示变化的值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<input type="radio" name="r" value="1" checked="checked"/>1
		<input type="radio" name="r" value="2" />2
		<input type="radio" name="r" value="3" />3
		<script>
			var r = document.getElementsByTagName("input");
			for(var i = 0; i < r.length; i++){
				r[i].onchange = function(){
					alert(this.value);
				}
			}
		</script>
	</body>
</html>

对于input元素来说,由于change事件类型仅在用户已经离开了元素,且失去焦点时触发,所以当执行上上面的例子时,会感觉到延迟现象。为了更好的提高用户体验,很多时候会根据需要定义在按钮松开或鼠标单击时执行响应,这样速度会快很多。

示例:设计一个文本框,只允许输入数值。利用focus事件修改文本框的背景颜色,以便更清楚的表明这个字段获得了焦点。利用blur事件恢复背景,利用change事件在用户输入非数字时改变颜色。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<form id="myform" method="post" action="javascript:alert('提交')">
			<p><label for="comments">请输入数字:</label><br>
				<input type="text" id="txtNumbers" name="numbers"/></p>
			<p><input type="submit" value="提交表单" id="submit-btn"/></p>
		</form>
		<script>
			var form = document.getElementById("myform");
			var numbers = form.elements["numbers"];
			numbers.onfocus = function(event){
				event = event || window.event;
				var target = event.target || event.srcElement;
				target.style.backgroundColor = "yellow";
			}
			numbers.onblur = function(){
				event = event || window.event;
				var target = event.target || event.srcElement;
				if(/[^\d]/.test(target.value)){
					target.style.backgroundColor = "red";
				}else{
					target.style.backgroundColor = "";
				}
			}
			numbers.onchange = function(){
				event = event || window.event;
				var target = event.target || event.srcElement;
				if(/[^\d]/.test(target.value)){
					target.style.backgroundColor = "red";
				}else{
					target.style.backgroundColor = "";
				}
			}
		</script>
	</body>
</html>

文本框获取焦点:
在这里插入图片描述

正确输入数字:
在这里插入图片描述

错误的输入其他字符:
在这里插入图片描述

泛微E9表单开发:详解明细字段属性联动JS实现与实战 在Web前端开发与低代码平台实践中,表单联动是提升用户体验和保证数据有效性的关键技术。其核心原理是通过JavaScript监听表单字段值的变化,并动态操作DOM元素属性,从而控制其他相关字段的显示、编辑、必填等状态。这项技术对于构建复杂业务表单、实现动态校验和流程自动化具有重要价值,广泛应用于ERP、OA、CRM等企业级系统的二次开发场景。本文将聚焦于泛微E9平台这一具体技术栈,深入剖析其明细表(Detail Table)这一复杂数据结构下的属性联动实现。针对开发中的常见痛点,如动态新增行导致的事件绑定失效 阅读详情

相关推荐

OpenWPM实战:监控JavaScript API调用,追踪敏感数据流与隐私泄露

JavaScript API是Web应用与浏览器环境交互的核心接口,涵盖了从DOM操作、网络请求到本地存储等关键功能。其调用监控技术,通常通过代码插桩(Instrumentation)或调试协议(如Chrome DevTools Protocol)实现,能够无侵入地记录函数执行、参数传递及返回值。这项技术的核心价值在于提升Web应用的可观测性与安全性,尤其在数据隐私合规、恶意行为检测和第三方脚本审计等场景中至关重要。例如,通过监控document.cookie或localStorage的访问,可以追踪用户凭

weixin_33984032的博客 358

js中select 选择器的 change 事件处理函数

js中select 选择器的 change 事件处理函数

weixin_53246425的博客 1万+

Kimi K2.5编程实测:JavaScript/TypeScript全栈开发新范式

大语言模型在编程领域的核心价值,正从单纯代码生成转向对真实开发闭环的理解与执行。多模态能力让模型能直接解析UI截图、录屏和错误堆栈,Agent Swarm架构将复杂任务拆解为可验证的原子操作,而原生INT4量化则支撑起本地化、低延迟的工程实践。尤其在JavaScript和TypeScript生态中,Kimi K2.5展现出对Vite配置弃用、npm PowerShell策略、Vue 3 Composition API、ECharts集成等高频场景的深度适配能力,不再停留于语法层面,而是深入编译器原理、构建工

weixin_34130389的博客 435

jquery js处理select元素选择change事件

在html页面中,select元素是我们经常使用的标签元素。本文介绍如何使用原生 js 和 jquery 设置select的默认选中项,以及select的选择事件处理。 准备工作: 1. 代码: <form> <label>城市:</label> <selectid="city"name="city"> <optionvalue="">请选择</option> ...

ztnhnr的专栏 2万+

Open UI5 源代码解析之1030:Select.js

OpenUI5 Select控件源码分析 sap.m.Select是OpenUI5框架中一个功能丰富的下拉选择控件,其实现位于src/sap.m/src/sap/m/Select.js。该控件具有以下核心特点: 复合控件架构:作为UI5 Control的子类,它整合了Dialog/Popover、SelectList等多个组件,实现跨设备自适应展示(手机端用Dialog,桌面端用Popover) 多重职责: 统一单选输入体验 作为其他复合控件的基础组件 处理表单集成和无障碍访问 管理复杂的交互边界(键盘导航

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 715

前端交互增强JS框架:表单验证+对话框+日期处理+Select美化实战

标准化格式确保系统间互操作性:格式名称示例使用场景ISO 8601API 数据传输、数据库存储RFC 2822邮件头、HTTP HeadersUnix 时间戳1672531200移动端通信、缓存键生成使用date-fns可轻松转换:两者均支持模板函数来自定义选项展示内容。例如在Select2中插入图标:if (!HTML:实现图文混排效果,提升信息密度与识别效率。pietitle 下拉组件选型依据。

weixin_42587866的博客 812

JS模拟select点击,触发change事件

【代码】JS模拟select点击,触发change事件。

qq_38147736的博客 1872

Halcon实战:5种边缘检测算子对比(Sobel、Roberts、Prewitt、Kirsch、Canny)

本文深入对比了Halcon中Sobel、Roberts、Prewitt、Kirsch和Canny五大边缘检测算子的实战表现与核心差异。通过工业图像实例与代码解析,提供了基于噪声水平、边缘连续性及实时性要求的场景化选型指南,帮助工程师精准选择最适合的算子以优化视觉检测流程。

weixin_29266007的博客 393

关于select下拉框选择触发事件

最开始使用onclick设置下拉框触发事件发现会有一些问题: <select> <option value="0" onclick="func0()">选项一</option> <option value="1" onclick="func1()">选项二</option> </select> 后来查阅资料才知道 select 的事件是注册在自己标签上的,不是onclick,而是onchange: <select

书山有鹿的博客 9722

android mtk camera如何自定义默认拍照与录像分辨率

本文详细解析了在Android MTK平台上自定义相机默认拍照与录像分辨率的方法。通过分析Camera2应用默认选择逻辑,定位并修改PictureSize.java与VideoQualityCaptureRequestConfig.java中的关键代码,实现绕过系统智能选择,强制指定最高或特定分辨率。文章还提供了进阶的可配置化方案与验证避坑指南,帮助开发者精准控制相机行为。

weixin_29194817的博客 434

【AutoSAR】【以太网】TCP/IP 栈详述与配置

目录 一、TCP/IP栈架构 二、TCP\IP栈的可扩展性 三、以太网协议V4 四、以太网协议 V6 五、基于IP的协议 六、函数调用序列图 一、TCP/IP栈架构 根据以上架构图,该栈主要包括:UPD\TCP\DHCP\ICMP\IPV4\IPV6\ARP; 二、TCP\IP栈的可扩展性 TCP\IP栈为适应不同的应用场景需求,将分为三类: 配置工程里的配置项: 三、以太网协议V4 1 IPV4 Internet Protocol (IP)是T.

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 5696

select 选中 事件 值

选中的值: $("select选择器").val();   $("select选择器").find("option:selected").val();   选中的文本:$("select选择器").find("option:selected").text(); 选中的索引:  select选中索引有好多方式, 正确:$('#someId').prop('s

changgongzhao的专栏 3824

[VT虚拟化驱动]正式启动VT

文章目录前言一、vmlaunch正式开始虚拟化二、使用步骤1.引入库2.读入数据总结 前言 本章开始真正实现一个最简单的VT框架,当然,只是能跑起来一个VT驱动了,没有并包括EPT,EPT后面再讲 提示:以下是本篇文章正文内容,下面案例可供参考 一、vmlaunch正式开始虚拟化 执行VMLAUNCH指令执行后,就正式进入虚拟化了,再该指令执行之前,得先保存Guest当前的环境,执行完VMLAUNCH后,要恢复Guest的环境,让Guest就像什么都没发生一样,所以需要保存和恢复Guest的各种寄存器的值

吾无法无天的博客 3663

JavaScript表单事件深度解析:select与change触发机制及实战避坑指南

表单事件是Web前端交互的基础能力,其中select事件用于监听用户文本选中行为,change事件则标识用户完成输入确认。其底层原理涉及浏览器焦点管理、渲染时机、输入法兼容性及移动端特殊处理逻辑。技术价值在于实现精准的用户意图识别与响应分层——如选中即反馈、修改即防抖、失焦才提交。典型应用场景包括富文本智能高亮、多级联动下拉框防误触发、注册表单实时校验与终局同步。本文聚焦select和change两大核心事件在input、select、checkbox等控件中的差异化触发条件、跨端兼容性陷阱及可落地的工程化

weixin_31881651的博客 237

Flutter:如何在Android中实现串口通信调试

本文介绍如何通过flutter_libserialport插件在Flutter中实现串口通信调试。

sg_knight的专栏 6098

从模糊到清晰:让AI教相机自动对焦的实战指南

AI自动对焦技术:让模糊照片成为过去式 深度学习驱动的自动对焦技术正颠覆传统摄影,使相机能在复杂场景下智能锁定焦点。相比传统对焦方法在弱光、低对比度环境下的失效,AI通过学习"清晰-模糊"规律,实现全场景精准对焦。本文详细解析了该技术的三大优势: 自适应各种光线条件; 毫秒级对焦速度; 突破物理限制的精度。 通过PyTorch搭建的CNN模型,展示了从数据采集到模型训练的全流程实战方案,包括使用拉普拉斯算子评估图像清晰度等关键技术。该技术已成功应用于手机摄影、工业检测、无人机航拍和安防监

LXY_LOVE36的博客 348

SumatraPDF 内嵌 MuPDF 的 PDFWidget 表单控件 JavaScript API 实战指南:从字段读取、编辑到数字签名

PDFWidget 是 MuPDF 为 JavaScript 绑定(mupdf.js / mutool run)提供的 PDF 交互表单控件接口,覆盖按钮、文本框、复选框、下拉框与签名域等全部控件类型。本指南以 SumatraPDF 仓库内嵌的 MuPDF 源码([PDFWidget.rst](https://link.gitcode.com/i/a63b5de6e06f0a287f1904856

gitblog_00729的博客 372

RK3568平台(网络篇)WIFI模块RTL8821CU调试

RTL8821CU是瑞昱半导体推出的usb接口的wifi,下面的教程将介绍如何将RTL8821CU移植到rk3588的平台上。移植usb wifi需要修改的文件Android hal层需要修改的文件//kernel需要修改的文件kernel/arch/arm64/boot/dts/rockchip/rk3399-tve1030g.dtsi //除去板上的sdio的wifi。

weixin_49303682的博客 3905

Sizzle 纯 JavaScript CSS 选择器引擎:构建、测试与源码级原理解析

Sizzle 是一款以纯 JavaScript 实现的 CSS 选择器引擎,设计初衷是"轻松嵌入宿主库"——jQuery 的历史版本正是基于它完成选择器解析与元素匹配。本指南以官方 README 的构建与测试流程为主线,结合 [src/sizzle.js](https://link.gitcode.com/i/7d8040bfac1d7dfe7fb6b91a6a52d1f3)、[Gruntfile

gitblog_00552的博客 95

【微信小程序-uniapp】CustomPicker 自定义单项选择器组件

自定义底部弹出框单项选择器组件,适用于uniapp小程序

Komorebi_00的博客 1533

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JavaScript--18 操作 form 表单的选择框

选择框脚本选择框简介select 的属性和方法option 的属性选择选项的方式使用 selectedIndex 属性设置 selected 属性添加选项的方法使用 DOM 操作使用 Option 构造函数使用 add() 方法移除选项的方法使用 removeChild 方法使用 remove() 方法设置为 null移除所有项移动选项选择框间移动选择框内移动 选择框简介 选择框是通过<se...

邪人君子的博客 1205

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Parsley.js 2.9 表单前端校验实战指南:不写一行 JavaScript 也能完成表单验证

Parsley.js 是一款基于 jQuery 的前端表单校验库,其核心卖点是"**Validate your forms, frontend, without writing a single line of javascript**"——借助 `data-parsley-*` 系列 HTML 属性(Data Attributes DOM API),开发者无需编写任何 JavaScript 配置

gitblog_00992的博客 254

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

知识梳理——JavaScript

1. 说说前端中的事件流 HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件onclick、页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件。想要知道这些事件是在什么时候进行调用的,就需要了解一下“事件流”的概念。 什么是事件流:事件流描述的是从页面中接收事件的顺序. DOM2级事件流包括下面几个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段 addEventListener:addEventListener 是DOM2 级事件新增的指定事件处

wytraining 1632

typeahead.js 的 jQuery 插件 API 完全指南:用法、选项、数据集与自定义事件

typeahead.js 的 UI 组件以 jQuery 插件的形式对外提供,负责渲染建议列表并处理所有 DOM 交互(输入、键盘、鼠标、焦点等)。本文以官方文档 [doc/jquery_typeahead.md](https://link.gitcode.com/i/c74f1fa101e774f0fa97aa20fae082e2) 为主体,结合 [src/typeahead/plugin.js

gitblog_00635的博客 769

BootstrapVue 表单选择器 `<b-form-select>` 完全指南:options 数据源、多选、校验状态与源码实现解析

`<b-form-select>` 是 BootstrapVue 提供的基于原生 `<select>` 的自定义下拉选择组件,支持通过数组或对象快速生成选项、选项分组、单选/多选、尺寸控制、校验状态与无障碍属性。本文以 [form-select/README.md](https://link.gitcode.com/i/06beacc762be9badaebcd6ead6295fbd) 为骨架,结

gitblog_00919的博客 247

laravel-admin 实现动态form,检测select显示对应的表单内容

1、写上对应的表单select $type = $id ? User::where('id',$id)->value('intro_type') : 1; $form->select('intro_type','介绍类型')->options(['1'=>'上传图片','2'=>'链接地址'])->default($type); 2、加上对应的js代码 A...

cxhblog的博客 5431
上一篇: JS--JavaScript焦点处理(获取焦点focus、失去焦点blur)
下一篇: JS--JavaScript提交表单(submit事件)、重置表单、取消默认提交表单(单击按钮、回车)
吴声子夜歌
博客等级 码龄9年 2688粉丝 2270原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值