zoukankan      html  css  js  c++  java
  • Javascript基础系列(十三)-表单

    表单脚本

    HTML中 form 表示表单

    action: 接收请求的URL
    elements: 表单所有控件的集合
    length:表单控件数量
    method: 请求方式Get,post
    name: 表单名称
    submit: 表单提交
    reset: 表单重置
    target: 发送请求和接受响应的窗口名称
    acceptCharset:服务器处理在字符集
    enctype:请求编码类型
    

    表单字段事件

    blur,change,focus
    

    文本框脚本

    • input-text: 单行文本
    • textarea: 多行文本

    约束验证API

    • 必填 required
    • 类型约束 email 、url
    • 数字范围 range
    • 正则 pattern = "d+"
    • 检测有效性 checkValidity()
    • 禁用校验 novalidate
    代码序列化
    function serialize(form) {
    	var parts = [],
    		field = null,
    		i,
    		len,
    		j,
    		optLen,
    		option,
    		optValue;
    
    	for (i = 0, len = form.elements.length; i < len; i++) {
    		field = form.elements[i];
    
    		switch (field.type) {
    			case "select-one":
    			case "select-multiple":
    				if (field.name.length) {
    					for (j = 0, optLen = field.options.length; j < optLen; j++) {
    						option = field.options[j];
    						if (option.selected) {
    							optValue = "";
    							if (option.hasAttribute) {
    								optValue = (option.hasAttribute("value") ?
    									option.value : option.text);
    							} else {
    								optValue = (option.attributes["value"].specified ?
    									option.value : option.text);
    							}
    							parts.push(encodeURIComponent(field.name) + "=" +
    								encodeURIComponent(optValue));
    						}
    					}
    				}
    				break;
    
    			case undefined: //字段集
    			case "file": //文件输入
    			case "submit": //提交按钮
    			case "reset": //重置按钮
    			case "button": //自定义按钮
    				break;
    
    			case "radio": //单选按钮
    			case "checkbox": //复选框
    				if (!field.checked) {
    					break;
    				}
    				/* 执行默认操作 */
    			default:
    				//不包含没有名字的表单字段
    				if (field.name.length) {
    					parts.push(encodeURIComponent(field.name) + "=" +
    						encodeURIComponent(field.value));
    				}
    		}
    	}
    	return parts.join("&");
    }
    

    富文本编辑框

    本质: 在页面中嵌入一个包含空的HTML页面的iframe , 通过设置designMode属性 contenteditable ,使这个空白的HTML页面可以编辑

    操作方式

    document.execCommand() 来处理文本,第二个参数始终设置false,为了浏览器的兼容

    命令 值(第三个参数) 说明
    backcolor 颜色字符串 设置文档的背景颜色
    bold null 将选择的文本转换为粗体
    copy null 将选择的文本复制到剪贴板
    createlink URL字符串 将选择的文本转换成一个链接,指向指定的URL
    delete null 删除选择的文本
    cut null 将选择的文本剪切到剪贴板
    fontname 字体名称 将选择的文本修改为指定字体
    fontsize 1~7 将选择的文本修改为指定字体大小
    forecolor 颜色字符串 将选择的文本修改为指定的颜色
    formatblock 要包围当前文本块的 使用指定HTML标签来格式化选择的文本块
    indent null 缩进文本
    inserthorizontalrule null 在插入字符处插入一个<hr>元素
    insertorderedlist null 在插入字符处插入一个<ol>元素
    insertimage 图像的URL 在插入字符处插入一个图像
    insertunorderedlist null 在插入字符处插入一个<ul>元素
    insertparagraph null 在插入字符处插入一个<p>元素
    italic null 将选择的文本转换成斜体
    justifycenter null 将插入光标所在文本块居中对齐
    justifyleft null 将插入光标所在文本块左对齐
    outdent null 凸排文本(减少缩进)
    paste null 将剪贴板中的文本粘贴到选择的文本
    removeformat null 移除插入光标所在文本块的块级格式。这是撤销formatblock命令的操作
    selectall null 选择文档中的所有文本
    underline null 为选择的文本添加下划线
    unlink null 移除文本的链接。这是撤销createlink命令的操作
  • 相关阅读:
    我与酷派手机N900+的艰难之旅
    从ASPNET1.1迁移到了ASPNET2.0遇到ORA01000: 超出打开游标的最大数
    彩铃平台接口独立取得阶段性胜利
    中央音乐平台的MD5算法问题
    彩铃接口独立完毕
    'OraOLEDB.Oracle.1' provider is not registered on the local machine.错误的解决
    程序员的陷阱
    ASP NET页面下载程序
    从aspnet1.1升级到aspnet2.0的小问题
    彩铃平台接口的计费服务问题解决
  • 原文地址:https://www.cnblogs.com/pengsn/p/12735916.html
Copyright © 2011-2022 走看看