js高级程序设计笔记9--表单

表单的基本知识

表单对应的是HTMLFormElement类型。有他自己独有的属性和方法。

acceptCharset:服务器能够处理的字符集。
action:请求的URL
elements:表单中所有控件的集合。
length:表单中控件的数量。
method:HTTP请求类型。
name:表单的名称。
reset():将所有表单重置为默认值。
submit():提交表单。
target:用于发送请求和接收响应的窗口的名称。

提交表单

三种提交方式

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

在js中,调用form的submit()方法也可以提交表单。

重置表单

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

重置表单会使所有表单字段恢复到页面刚加载完毕时的初始值。
在js中也可以调用form的reset()方法重置表单。

表单字段

1.共有的表单字段属性
除了元素之外。所有表单字段都拥有相同的一组属性。

disabled:当前字段是否被禁用。
form:指向当前字段所属表单的指针,只读。
name:当前字段的名称。
readOnly:表示当前字段是否只读。
tabIndex:表示当前字段的切换(tab)序号。
value:当前字段将被提交给服务器的值。对于文件字段来说,这个属性是只读的。包含着文件在计算机中的路径。

防止表单重复提交:最常见的解决方案就是在第一次单击后禁用提交按钮。只要侦听submit事件,并在该事件发生时禁用提交按钮即可。

EventUtil.addHanler(form,"submit",function(event){
    event = EventUtil.getEvent(event);
    var target = EventUtil.getTarget(event);
    var btn = target.elements["submit-btn"];
    btn.disabled = true;
})

注意不能通过onclick事件处理程序来实现这个功能。因为不同浏览器之间存在“时差”,有的浏览器会在触发表单的submit事件之前触发click事件(意味着提交发生之前禁用按钮导致永远都不会提交表单)。有的则相反。
2. 共有的表单字段方法
focus():得到焦点,激活表单字段。
blur():失去焦点。
HTML5为表单字段新增了一个autonfocus属性。自动把焦点移到相应字段。

<input type="text" autofocus>
  1. 共有的表单字段事件
    blur:
    change:对于和元素,在他们失去焦点且value值改变时触发。对于元素,在其选项改变时触发。
    focus:

文本框脚本

//能够显示25个字符,但输入不能超过50个字符
<input type="text" size="25" maxlength="50" value="initial value">
//字符行数为25,字符列数为5,初始值必须在<textarea>之间,不能给<textarea>指定最大字符数
<textarea rows="25" cols="5">initial value</textarea>
  1. 选择文本:这两种文本框都支持select()方法,用于选择文本框中的所有文本。
    select事件:在选择了文本框的文本时(即使只有一个字母)就会触发select事件。
  2. 取得选择的文本:HTML5通过两个属性:selectionStart和selectionEnd。(即文本选取开头和结尾的偏移量).
function getSelectedText(textbox){
    return textbox.value.substring(textbox.selectionStart,textbox.selectionEnd);
}

IE8及之前不支持这两个属性。它有个document.selection对象,其中保存着用户在整个文档范围内选择的文本信息。

if(document.selection){
    return document.selection.createRange().text;
}
  1. 选择部分文本
    所有文本框都有一个setSelectionRange()方法,接收两个参数:要选择的第一个字符的索引和最后一个字符的索引。
    IE8及其更早版本使用范围选择部分文本。
function selectText(textbox,startIndex,stopIndex){
    if(textbox.setSelectionRange){
        textbox.setSelectionRange(startIndex,stopIndex);
    }else if(textbox.createTextRange){
        var range = extbox.createTextRange();
        range.collapse(true);
        range.moveStart("character",startIndex);
        range.moveEnd("character",stopIndex-startIndex);
        range.select();
    }
    textbox.focus();
}

过滤输入

  • 屏蔽字符
    响应文本框中插入字符操作的是keypress事件。因此可以通过阻止这个事件的默认行为来屏蔽此类字符。但有些浏览器也会对其它键触发此事件。Firefox和Sarari(3.1版本之前)会对上键,下键,退格键和删除键触发keypress事件。在firefox中,所有由非字符键触发的keypress事件对应的字符编码为0,safari对应的字符编码为8.还要确保用户没有按下Ctrl键(复制粘贴需要)例子:只允许输入数字
EventUtil.addHandler(textbox,"keypress",function(event)){
    event = EventUtil.getEvent(event);
    var target = EventUtil.getTartget(event);
    var charCode = EventUtil.getCharCode(event);
    if(!/\d/.text(String.fromCharCode(charCode)) && charCode>9 && !event.ctrlKey){
        EventUtil.preventDefault(event);
    }
}


  • 操作剪贴板
    剪贴板事件:

beforecopy:
copy:在复制时触发
beforecut:
cut:在发生剪切时触发
beforepaste:
paste:在发生粘贴时触发。
这些事件及相关对象会因浏览器而异。
要访问剪贴板的数据可以使用clipboardData对象。在IE中这个对象是window对象的属性。而在firefox,safari,chrome中是event对象的属性,但是只有在处理剪贴板事件期间此对象才有效,这是为了防止度剪贴板的未授权访问。这个对象有三个方法:
getData():从剪贴板中取得数据。接受一个参数:要取得数据的格式。IE有两种数据格式“text”和”URL”.在其它浏览器是一种MIME类型。返回布尔值。
setData():接收两个参数。第一个是数据类型。第二个是放在剪贴板中的文本。返回布尔值。
clearData():清楚数据。

var EventUtil = {
    ....
    getClipboardText:function(event){
        var clipboardData = (event.clipboardData || window.clipboardData);
        return clipboardData.getData("text");
    }
    setClipboardText:function(event,value){
        if(event.clipboardData){
            return event.clipboardData.setData("text/plain",value);
        }else if(window.clipboardData){
            return window.clipboardData.setData("text",value);
        }
    }
}

选择框脚本

HTMLSelectElement类型提供了下列属性和方法。

add(newOption,relOption):向控件中插入元素,在relOption之前。
multiple:布尔值,表示是否多项选择。
options:控件中所有元素的HTMLCollection。
remove(index):移除给定位置的选项。
selectedIndex:基于0的选中项的索引。
size:选择框中可见的行数。

每个元素都有一个HTMLOptionElement对象表示。此对象有如下属性。

index:当前选项在options集合中的索引。
label:当前选项的标签。
selected:表示当前选项是否被选中。
text:当前选项的文本。
value:选项的值。

添加选项

//使用DOM方式
var newOption = document.createElement("option");
newOption.appendChild(document.createTextNode("option text"));
newOption.setAttribute("value","option value");
selectbox.appendChild(newOption);
//使用OPtion构造函数
var newOption = new Option("option text","option value");
selectbox.appendChild(newOption);
//selectbox.add(newOption,undefined);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值