Javascript学习笔记9 表单

OneNET物模型实战:如何用NB-IOT模块上传JSON数据并解析 本文详细介绍了如何利用NB-IOT模块将传感器数据上传至中国移动OneNET物联网平台,并利用其物模型功能实现JSON数据的自动解析。文章从理解OneNET物模型与OneJson协议入手,逐步讲解了平台侧物模型创建、设备注册,以及设备端数据构造、HEX编码与NB-IOT模块AT指令上报的全流程,并提供了关键的调试技巧与常见问题排查方法,为物联网开发者提供了完整的实战指南。 阅读详情

表单基础

在JS中,表单对应的是HTMLForm-Element类型,其继承自HTMLElement,具有以下独有的属性和方法

  • action:接受请求的URL
  • method:发送HTTP请求的类型
  • enctype:编码类型
  • reset():重置表单
  • submit():提交表单

通过document.forms可以取得页面中所有表单,在这个表单集合中,可通过索引号访问

var form = document.forms[0];、

提交表单

定义以下任意一种提交按钮

<input type="submit" value="submit form">
<button type="submit">submit</button>
<input type="image" src="1.gif">

使用JS提交表单

var form = document.getElementById("myform");
form.addEventListener("submit",function(event){
    event.preventDefault();   //阻止提交表单
    //do something
    form.submit(); //提交表单,此种方法不会触发submit事件
},false);

重置表单

定义以下任意一种重置按钮

<input type="reset" value="reset form">
<button type="reset" >reset</button>

使用JS重置表单

var form = document.getElementById("myform");
form.addEventListener("reset",function(event){
    event.preventDefault();   //阻止重置表单
    //do something
},false);
form.reset();   //此种方法会触发reset事件

表单字段

可以通过表单的elements属性访问表单字段,可以按照位置和name来访问

var form = document.getElementById("myform");

var field1 = form.elements[0];
var field2 = form.elements["textbox1"];
var length = form.elements.length;
  • 当有多个表单控件使用同一name时,通过name访问表单元素时,会返回一个集合

表单字段共有的属性和方法

  • disabled:布尔值,表示当前字段是否禁用
  • form:指向当前字段的表单指针
  • name:当前字段的名称
  • readOnly:布尔值,表示当前字段是否只读
  • type:当前字段的类型(fieldset元素不具有此属性)
  • value:当前字段的值,对文件字段来说,此属性只读,其包含着文件的路径
  • focus():将浏览器的焦点设置到该字段
  • blur():移除焦点

除form属性外,可通过JS修改表单字段的属性

var form = document.getElementById("myform");
var field1 = form.elements[0];

field1.value = "new value";

field.focus();

field.disabled = true;

表单字段共有的事件

  • focus:当前字段获得焦点时触发
  • blur:当前字段失去焦点时触发
  • change:对于input和textarea元素,当它们失去焦点且值改变时触发;而对于select元素,当选项改变时触发

文本框脚本

HTML有两种方式表现文本框:<input>元素的单行文本框和<textarea>元素的多行文本框

  • 对于<input>元素,使用size属性指定文本框显示的字符数,而通过maxlength属性指定允许输入的最大字符数
  • 对于<textarea>元素,可以使用rows属性和cols属性指定文本框的行数和列数,其没有最大字符数。

选择文本

选择所有文本

var textbox = document.forms[0].elements["textbox1"];
textbox.select();
  • 与select()方法对应的是select事件,其在选择了文本框的文本后触发

使用selectionStart和selectionEnd属性(偏移量),取得选择的文本

var selectedText = textbox.value.substring(textbox.selectionStart,textbox.selectionEnd);

选择部分文本

textbox.setSelectionRange(开头字符索引,结尾字符索引);
  • 要看到选择的文本,必须在调用setSelectionRange()之前或之后立即将焦点设置到文本框

过滤输入

使用正则表达式来过滤输出

textbox.addEventListener("keypress",function(event){  //只允许用户输入数值
    if (!/\d/.test(String.fromCharCode(event.charCode)) && !event.ctrlKey){
        evnet.preventDefault();  //阻止输入
    }
},false);
  • pattern.test(text)函数如果匹配则返回true
  • String.fromCharCode()函数将字符编码转换为字符串
  • event.ctrlKey用于检测用户是否使用复制和粘贴

操作剪贴板

包括6个剪切板事件:beforecopy,copy,beforecut,cut,beforepaste,paste
剪切板数据存储在clipboardData对象中,在IE中,其实window对象的属性,在其他浏览器,其是event对象的属性
clipboardData对象有三个方法:getData(), setData(), clearData()。getData接受一个参数,即数据格式,可用“text”。setData()接受两个参数,数据格式和要放到剪切板的文本

var clipboard = (event.clipboardData || window.clipboardData);
clipboard.getData("text");
clipboard.setData("text","new value");  //IE
clipboard.setData("text/plain","new value");  //其他浏览器

HTML5约束验证API

必填字段

<input type="text" name="username" required>

其他输入类型

<input type="email" name="email">
<input type="url" name="homepage">

有效性检测

form.checkValidity()  //有效而返回true,否则返回false
  • 每个表单字段和表单本身都具有该方法

禁用验证 (novalidate)

<form method="post" action="zjw.php" novalidate>
</form>

选择框脚本

选择框是通过<select>和<option>元素创建的

HTMLSelectElement类型的属性和方法:

  • add(newOption,relOption) :插入新的<option>元素,插入位置在相关选项之前
  • multiple:布尔值,表示是否允许多选
  • options:所有<option>元素的集合
  • remove(index):移除指定位置的选项
  • selectedIndex:选中项的索引,若有多个项被选中,只保存第一个选中项的索引

HTMLOptionElement类型的属性和方法:

  • index:当前选项的索引
  • label:当前选项的标签
  • selected:布尔值,true表示被选中
  • text:选择项的文本
  • value:选项的值
var selectbox = document.forms[0].elements["selectbox1"];

var text = selectbox.options[0].text;   //选择框第一个选项的文本
var text = selectbox.options[0].value;  //选择框第一个选项的值

var selectedOption = selectbox.options[selectbox.selectedIndex];  //取得选中项
selectbox.options[0].selected = true;   //选中选择框的第一项

var newOption = new Option("option text","option value");   //调用构造函数创建新的选项
selectbox.add(newOption, undefined);       //添加到选择框的末尾

selectbox.remove(0);  //移除第一个选项

富文本编辑

创建富文本区域
方法1:在页面中嵌入一个包含空的HTML页面的iframe,通过设置designMode的值为“on”,来使得该页面能够被编辑,编辑对象则是该页面的<body>元素代码

<iframe name="richEdit" src="blank.htm" style="width:100px;height:100px"></iframe>

<script>
    window.addEventListener("load",function(){
        frames["richEdit"].document.designMode = "on";
    },false);
</script>

方法2:将contenteditable属性赋给页面中的任何元素,使其可以被编辑

<div class="editable" contenteditable></div>
  • 也可以通过JS将该属性设置为true

操作富文本
主要方式为document.execCommand(),该方法接受三个参数:命令名称,一个表示是否提供用户界面的布尔值,执行命令的值(或null)。其中第二个参数应始终设置为false

//将选择的文本转换粗体文本
frames["richEdit"].document.execCommand("bold",false,null);

//将选择的文本转换为斜体文本
frames["richEdit"].document.execCommand("italic",false,null);

//创建链接
frames["richEdit"].document.execCommand("createlink",false,"https://www.zjw666.top");

//格式化为1级标题
frames["richEdit"].document.execCommand("formatblock",false,"<h1>");

//插入图像
frames["richEdit"].document.execCommand("insertimage",false,"pic/zjw.jpg");
  • 对于具有contenteditable属性为true的元素来说,直接替换成document对象即可,例如document.execCommand("bold",false,null);
  • 除此之外,还有三个方法,分别是queryCommandEnabled()(检测命令是否适用,适用则返回true), queryCommandState()(检测命令的执行状态,执行成功返回true), queryCommandValue()(检测已执行命令的传入值),他们都接受一个参数,及命令名称
var result = frames["richEdit"].document.queryCommandState("bold");  //检测粗体命令是否执行成功

富文本选区
使用框架的getSelection()方法,返回Selection对象

var selection = frames["richEdit"].getSelection();

var text = selection.toString();  //取得选区的文本

var range = selection.getRangeAt(0)  //返回第一个选区对应的范围

var span = frames["richEdit"].document.createElement("span"); 
span.style.backgroundColor = "red";
range.surroundContents(span);  //使用节点环绕选区内容,达到突出文本的效果

表单和富文本
富文本不会被表单自动提交,需要我们自己提取内容

form.addEventListener("sumbit",function(event){
    var target = evnet.target;
    //将选区内容复制给comments元素的值
    target.elements["comments"].value = frames["richEdit"].document.body.innerHTML; 
    // 对于具有contenteditable属性的元素
    // target.elements["comments"].value = document.getElementById("richEdit").innerHTML;
});
PyTorch生成式人工智能(25)——基于Transformer实现机器翻译 不同于循环神经网络 (RNN) 按顺序处理数据,Transformer 以并行的方式处理输入数据(例如句子)。这种并行处理提高了效率,但并未使其能够识别输入的顺序。为了解决这个问题,Transformer 向输入的词嵌入中添加了位置编码。这些位置编码是分配给输入序列中每个位置的独特向量,其维度与输入词嵌入对齐。本节将以英语到法语的翻译为例,通过介绍如何训练 Transformer 模型将英语句子转换为法语,深入理解 Transformer 的架构及自注意力机制的运作方式。 阅读详情

相关推荐

英伟达Orin芯片:自动驾驶的标杆产品

英伟达Orin芯片是面向自动驾驶和边缘AI的高性能SoC,采用7nm工艺,单芯片算力达254TOPS(INT8),功耗45-55W。其硬件架构包含12核ARM CPU、Ampere GPU、专用DLA和PVA加速器,支持64GB LPDDR5内存,符合车规级ASIL-D安全标准。软件生态涵盖DRIVE OS、CUDA、TensorRT等工具链,提供全栈解决方案。Orin已被理想、蔚来等车企采用,主要竞争对手包括高通Snapdragon Ride和地平线征程系列。面试需重点掌握算力指标、异构计算架构、Tens

学习代码 1823

javascript学习之表单,FormData 对象

表单数据以键值对的形式向服务器发送,这个过程是浏览器自动完成的。但是有时候,我们希望通过脚本完成这个过程,构造或编辑表单的键值对,然后通过脚本发送给服务器。浏览器原生提供了 FormData 对象来完成这项工作。FormData()首先是一个构造函数,用来生成表单的实例。FormData()构造函数的参数是一个 DOM 的表单元素,构造函数会自动处理表单的键值对。这个参数是可选的,如果省略该参数,就表示一个空的表单。下面是一个表单。

白话机器学习 969

Agentic AI上下文工程架构终极指南:全面解决智能体理解问题

在开始架构设计前,我们需要先明确两个核心概念——Agentic AI和上下文工程。Agentic AI(智能体AI)是具备自主目标、环境交互、任务分解能力的AI系统。自主性:不需要人类逐步指令,能自己规划任务(比如“帮我订机票”→自动分解为“查航班→选座位→填信息→支付”);动态性:能根据环境变化调整行为(比如订机票时发现航班延误,自动改签到下一班);连续性:能记住历史交互(比如“上次你说喜欢靠窗位,这次帮你预留了”)。

AI开发架构师 1116

js进阶——使用js操作表单数据并回显

通过本文,可以学会如何使用JavaScript将表单数据封装为对象,如何替换对象中的属性名,以及如何将对象数据回显到表单中。这些技巧在实际的Web开发中非常实用,能够帮助你更好地处理表单数据。

2301_79858914的博客 1456

雷达原理习题答案【西电】

  目前教材用的是陈老师新版的,但是,我发现课后题有一部分是之前某本书里的。答案如下【建议参看原题→查阅答案】 【原题点这里!!点这里!!】 目录跳转功能目前好像只支持网页版 文章目录% 第一章、第二章% 第三章% 第四章% 第五章% 第六章% 第七章% 第八章 % 第一章、第二章 % 第三章 % 第四章 % 第五章 % 第六章 % 第七章 % 第八章 ...

薛定谔的壳的博客 1万+

(三) Debian 安装linuxcnc-ethercat中间件

1.在这里同样的也是需要下载一下依赖包 sudo apt install linuxcnc-uspace-dev 2.依赖包安装完成, 接着执行下面命令 sudo git clone https://github.com/sittner/linuxcnc-ethercat 还是可能出现下载网络错误下载不成功,可以直接下载我已上传百度云linuxcnc目录下 注意一下,后面make可能会出现头文件(xxx.h)的报错提示,在这里给大家一个处理办法 用aptitude 工具可以搞定 sudo apt-get

qq_30065813的博客 828

从零开始学习JavaScript:轻松掌握编程语言的核心技能④

🎖️🎖️:Python领域新星创作者,优快云实力新星认证,阿里云社区专家博主🎁🎁:Web全栈开发专栏:《》免费专栏,欢迎阅读!

weixin_50804299的博客 5869

如何让 RTX 5090 开启 PCIE P2P 以加速多卡通信

RTX 5090 基于新的 Blackwell 架构。NVIDIA 出于对某些主板兼容性(如 IOMMU、Resizable BAR 策略)的保守考虑,**屏蔽了 5090 的 BAR1 P2P 功能**。 我们需要通过 Patch 驱动源码,强制开启这一隐藏功能。 开启 P2P 后,PyTorch 的集合通信算子(Multi-GPU 训练的核心)延迟显著降低,**All-Reduce 甚至降低了 60% 以上**。

Hi20240217的博客 1733

Python学习:HTML表单

HTML表单用于从客户端收集用户在浏览器中的输入,是HTML实现客户端与服务器交互的核心方法。一、文本输入 分类 标签 单行文本 &lt;input type=&quot;text&quot;&gt; 多行文本 &lt;textarea&gt; 密码框 &lt;input type=&quot;password&quot;&gt; 二、单项选择 分类 标签 单选按钮

Qreal的博客 4841

28_Spring AI 干货笔记之 OpenAI 聊天功能

本文详细介绍了在Spring AI框架中集成OpenAI聊天模型的方法。内容涵盖API密钥配置、通过starter依赖启用自动配置、连接与模型参数的详细设置,并重点说明了运行时选项的动态覆盖机制。文章还深入讲解了多模态处理(图像与音频)、结构化输出、函数调用等高级功能,提供了示例控制器和手动配置指南,并讨论了与OpenAI兼容服务器的适配与推理模型思维链的获取。

在科技的浪潮中,我们寻找着创新的火种,在代码的海洋里,我们编织着智慧的网。腾飞开源,就是这样一个由技术精英汇聚而成的博客平台,我们致力于分享在Java、Python、IoT和人工智能等领域的最新研究成果和实战经验。 在腾飞开源的博客上,你会看到紧跟技术前 1657

069_死区效应对输出电压畸变的补偿思路

死区效应导致逆变器输出电压在过零点出现台阶畸变,引发THD升高。其本质是死区期间续流二极管钳位造成的非线性误差,与电流方向、负载大小、母线电压耦合。补偿需结合前馈(基于电流方向自适应调整偏置)与反馈(抑制残余谐波),关键在于准确判断电流方向(采用滞环滤波避免跳变)、合理设置补偿量(随负载动态调整),并注意补偿位置、极性及限幅防漂移。调试应通过差分探头、FFT频谱等手段验证效果,最终实现全负载范围内的低畸变输出。

2401_88858637的博客 21

第9章 表单校验

为什么要表单验证 1.减轻服务器的压力 2.保证输入的数据符合要求 常用的表单验证 日期格式 表单元素是否为空 用户名和密码 E-mail地址 身份证号码 表单选择器 属性过滤选择器 验证表单内容: 使用String 对象验证邮箱:不能为空,格式正确。 非空验证: 字符串查找:indexOf(): ...

weixin_30492601的博客 390

innovus:insert Power Switch失败,报告not covered by a row问题解析

这个问题就是switch找不到可以放置的row,分析就从两方面入手,一方面从voltage area下手,一方面从row和site入手。检查发现voltage area设置正确,row也存在,只不过lef里缺少对应switch的双倍高的site。更多学习内容请关注「拾陆楼」知识星球。

m0_61544122的博客 1159

9. Javascript学习笔记——表单处理

9. 表单处理 9.1 表单的基础知识 ///表单用 <form> 元素表示,对应的是 HTMLFormElement 类型,继承自 HTMLElement。 //属性:action、method、acceptCharset ///【获取表单】 var form = document.getElementById('form1');//通过给<from>标...

weixin_34186128的博客 110

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JS表单的获取、表单元素的获取、提交表单

获取表单 document.getElementById(“id属性值”),通过表单的id属性值获取属性对象 document.表单的name属性值,通过表单的name属性值获取表单对象 document.forms[下标],通过指定下标获取表单元素 document.forms[表单的name属性值获取],通过表单的name属性值获取表单对象 document.forms:获取HTML文档中所有的表单对象 <body> <!-- 获取表单(前两种常用) 1..

m0_51258512的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

js验证表单大全,用JS控制表单提交 ,javascript提交表单:

关键字:js验证表单大全,用JS控制表单提交 ,javascript提交表单:目录:1:js 字符串长度限制、判断字符长度 、js限制输入、限制不能输入、textarea 长度限制 2.:js判断汉字、判断是否汉字 、只能输入汉字3:js判断是否输入英文、只能输入英文4:js只能输入数字,判断数字、验证数字、检测数字、判断是否为数字、只能输入数字5:只能输入英文字符和数字6: js email验证

zhaol520的专栏 2859

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

JavaScript表单

JS 表单 1. 获取表单 1. document.表单name属性值 2. document.getElementById(表单id) 3. document.forms[表单name属性值] 4. document.forms[索引] //从0开始 5. document.forms //取所有表单 例如: <body> <form id="myform" name="myform"></form> </body> <scr

weixin_63680062的博客 1333

用pdfform.js轻松填充PDF表单:纯JavaScript解决方案

用pdfform.js轻松填充PDF表单:纯JavaScript解决方案 项目介绍 在日常工作和生活中,我们经常需要处理PDF表单,无论是填写个人信息、提交报告还是签署合同。然而,传统的PDF表单填充工具往往依赖于特定的软件或插件,操作繁琐且不够灵活。为了解决这一问题,pdfform.js应运而生。 pdfform.js是一个纯JavaScript库,允许你在浏览器或服务器端轻松填充PDF表单。无...

gitblog_00538的博客 1217

php js 表单,javascript基础 之 表单

1,js可以验证表单实例1,js获取表单的内容//html表单是这样的名字://js验证表单的程序functionvalidateForm() {var x = document.forms["myForm"]["fname"].value;if (x == null || x == "") {alert("需要输入名字。");return false;}}//注意这个表单返回的是布尔值,而htm...

weixin_33103945的博客 181

js学习笔记:表单

表单的基础知识 在HTML中,表单是由元素来表示的,而在JS中,表单对应的则是HTMLFormElement类型。 HTMLFormElement类型继承了HTMLElement,因而与其他HTML元素具有相同的默认属性。不过HTMLFormElement也有它自己下列独有的属性和方法: action:接受请求的URL elements:表单中所有控件的集合 length:表单中控件的数量

(づ。◕‿‿◕。)づgigi奋斗在前端和刷题中╮(╯﹏╰)╭ 1347

JavaScript的表单、控件

表单是 web 开发中不可或缺的一部分,用于收集用户输入。本文将深入探讨 HTML 表单元素,涵盖常见元素、属性、事件和验证等主题,并提供大量代码示例,帮助你构建更强大的表单。​表单元素是 HTML 中非常重要的元素,可以用于收集用户输入。本文介绍了常见的表单元素、表单元素属性、表单事件和表单验证。表单元素是 web 开发的基础,掌握它们对于创建各种类型的表单至关重要。本文提供的知识和示例可以帮助你快速上手,并提升表单开发技能。希望本文对你有所帮助!

爱蹦跶的全栈大A阿 1424

js验证表单大全,用JS控制表单提交 ,javascript提交表单,表单提交 所有js判断

目录:1:js 字符串长度限制、判断字符长度 、js限制输入、限制不能输入、textarea 长度限制 2.:js判断汉字、判断是否汉字 、只能输入汉字3:js判断是否输入英文、只能输入英文4:js只能输入数字,判断数字、验证数字、检测数字、判断是否为数字、只能输入数字5:只能输入英文字符和数字6: js email验证 、js 判断email 、信箱/邮箱格式验证7:js字符过滤,屏蔽关键字8:

小老鼠(Alex) 1172

用JS控制表单提交 ,javascript提交表单.

 目录:1:js 字符串长度限制、判断字符长度 、js限制输入、限制不能输入、textarea 长度限制 2.:js判断汉字、判断是否汉字 、只能输入汉字3:js判断是否输入英文、只能输入英文4:js只能输入数字,判断数字、验证数字、检测数字、判断是否为数字、只能输入数字5:只能输入英文字符和数字6: js email验证 、js 判断email 、信箱/邮箱格式验证7:js字符过滤,屏蔽关键

besily的专栏 1566

注册表单校验 js java,JavaScript表单验证完美代码

用原生JS写一个简单的表单验证首先,是html部分新用户注册基本信息用户名:请输入至少3位的用户名密码:请输入4到8位的密码确认密码:请再输入一遍密码手机号码:请输入11位手机号码注册接着,为其加上CSS样式.divAll{width:800px;font-family:'黑体';margin:50px auto;}#titles{font-weight:bold;font-size:18px;h...

weixin_32946431的博客 1085

html表单处理js,javascript表单事件处理方法详解

本文实例为大家分享了javascript处理表单事件的常用方法,供大家参考,具体内容如下1、访问表单对象的常用方法:①:根据元素的id属性;var myform=document.getElementById("myformid"); //myformid是某个元素的ID;②:根据元素的name属性;var myform=document.forms["myformname"];   //myf...

weixin_34287049的博客 1324

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
上一篇: Javascript学习笔记8 事件
下一篇: Javascript学习笔记10 Canvas绘图
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值