`
huxiuliang
  • 浏览: 117200 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript---验证表单元素是否被修改

阅读更多
<form>
	<input type="text" value="defaultValue 1"/>  

	<input type="text" value="defaultValue 2"/>  

	<textarea >defaultValue 1</textarea>  

	<textarea >defaultValue 2</textarea>  

	<input type="radio" name="a" />test
	<input type="radio" name="a" checked="checked"/>defaultChecked  

	<input type="checkbox"  name="b"/>test
	<input type="checkbox"  name="b" checked="checked"/>defaultChecked
	<input type="checkbox"  name="b" checked="checked"/>defaultChecked  


	<select>
		<option selected="selected">defaultSelected 1</option>
		<option>test</option>
		<option>test</option>
		<option>test</option>
	</select>  


	<select multiple="multiple">
		<option>test</option>
		<option selected="selected">defaultSelected 1</option>
		<option selected="selected">defaultSelected 2</option>
		<option>test</option>
	</select>  


	<input type="button" onclick="IsFormChanged()" value="submit"/>
</form>
<script>
function IsFormChanged() {
	var isChanged = false;
	var form = document.forms[0];
	for (var i = 0; i < form.elements.length; i++) {
		var element = form.elements[i];
		var type = element.type;
		if (type == "text" || type == "hidden" || type == "textarea" || type == "button") {
			if (element.value != element.defaultValue) {
				isChanged = true;
				break;
			}
		} else if (type == "radio" || type == "checkbox") {
			if (element.checked != element.defaultChecked) {
				isChanged = true;
				break;
			}
		} else if (type == "select-one"|| type == "select-multiple") {
			for (var j = 0; j < element.options.length; j++) {
				if (element.options[j].selected != element.options[j].defaultSelected) {
					isChanged = true;
					break;
				}
			}
		} else { 
			//  etc...
		}     
	}    
	alert( isChanged?"你改变了表单的默认值.":"成功提交.");
	return isChanged;
}
</script>

 有2点注意
1,表单元素都有默认值属性,比如element.defaultValue , element.defaultChecked  ,element.options[j].defaultSelected

2,select元素的type类型是:""select-one"或者"select-multiple",而不是"select"。

分享到:
评论

相关推荐

    Multi-Step-Form-Js:具有jQuery验证的多步骤表单

    触发具有相关步骤数据的自定义更改事件以进行自定义处理(例如,更新进度条) 通过单击标题提供导航步骤的配置提供配置,以允许使用未验证的表单元素浏览各个步骤下载您可以通过npm安装multi-step-form-js 。...

    jQuery 表单验证插件

    你的所有信息都无需配置在校验表单元素上,你只要在js上配置你的信息。使美工(界面)和javascript工程师的工作不交织在一起 3、你只需写一行代码就能完成一个表单元素的所有校验。你只需要写一行代码就能完成一下...

    JavaScript笔记

    JavaScript:定义行为和动作 (基于对象和事件驱动的客户端脚本语言;也是一种广泛应用于客户端Web开发的脚本语言) 基于对象:网页中的一切元素都是假象!不需要new,即可直接使用 事件驱动:JavaScript的执行都是...

    JavaScript详解(第2版)

     17.5 用正则表达式验证表单   17.5.1 检查空字段   17.5.2 检查邮政编码   17.5.3 检查字母数据   17.5.4 删除多余字符   17.5.5 有效社会安全号码验证   17.5.6 验证电话号码   17.5.7 ...

    JavaScript经典实例

     5.15使用一个关联数组来存储表单元素名和值  第6章使用JavaScript函数构建重用性  6.0简介  6.1创建一段可重用的代码  6.2把单个数据值传递到函数  6.3把复杂的数据对象传递给函数  6.4创建一个动态运行时...

    客户端统一验证JavaScript函数库及示例源码

    参数myform指代验证的表单,可以比作验证树DOM的根,之后的JavaScript会遍历所有元素(elements),逐个检验,若没有设置验证则直接跳过,若有一个验证不通过,都不会将表单提交,并将光标定位到该处(focus()),若有...

    javascript完全学习手册1 源码

    4.2.3 表单元素属性和事件 82 4.2.4 表单验证 85 4.3 Anchor与Link对象 89 4.3.1 Anchor对象 89 4.3.2 Link对象 90 4.4 Image对象 92 4.4.1 图像翻转 92 4.4.2 图像载入 92 第5章 JavaScript其他常用 窗口对象 96 ...

    jQuery formValidator表单验证插件示例源码

    你的所有信息都无需配置在校验表单元素上,你只要在js上配置你的信息。使美工(界面)和javascript工程师的工作不交织在一起 3、你只需写一行代码就能完成一个表单元素的所有校验。你只需要写一行代码就能完成一下...

    angular-form-validation:用于自动化表单验证的 AngularJS 模块

    不再将ngClass指令手动应用到所有表单元素并为每个可能的输入创建错误消息。 只需安装此模块并通过使用原生HTML5属性(如maxlength 、 required和标准 AngularJS 指令(如ngMin 、 ngMax等)以标准方式提供输入要求...

    javascript完全学习手册2 源码

    4.2.3 表单元素属性和事件 4.2.4 表单验证 4.3 Anchor与Link对象 4.3.1 Anchor对象 4.3.2 Link对象 4.4 Image对象 4.4.1 图像翻转 4.4.2 图像载入 第5章 JavaScnpt其他常用窗口对象 5.1 Window对象 ...

    程序天下:JavaScript实例自学手册

    16.2 验证表单项必须填写 16.3 判断用户输入是否为中文 16.4 验证列表框中的值是否重复 16.5 检测输入框的统一方法 16.6 Email的验证 16.7 不使用正则验证IP地址 16.8 IP地址输入框 16.9 判断变量是否已经定义 16.10...

    JavaScript完全自学宝典 源代码

    示例描述:介绍JavaScript与表单控件。 6.1.html JavaScript获取文本框的值。 6.2.html JavaScript控制文本框。 6.3.html 文本框的JavaScript特效。 6.4.html 获取select元素的值。 6.5....

    javascript代码常用大全

    2.2 动态添加,修改,删除下拉框中的元素 2.3 可以输入内容的下拉框 2.4 多行文本框中只能输入iMax文字。如果多输入了,自动减少到iMax个文字(多用于短信发送) 3、打印类 3.1 打印控件 4、事件类 4.1 ...

    源文件程序天下JAVASCRIPT实例自学手册

    1.2.1 表单数据合法性验证 1.2.2 页面特效 1.2.3 交互式菜单 1.2.4 动态页面 1.2.5 数值计算 1.3 JavaScript编程起步 1.3.1 “Hello World!”程序 1.3.2 选择JavaScript脚本编辑器 1.4 如何引入JavaScript脚本代码 ...

    《程序天下:JavaScript实例自学手册》光盘源码

    16.2 验证表单项必须填写 16.3 判断用户输入是否为中文 16.4 验证列表框中的值是否重复 16.5 检测输入框的统一方法 16.6 Email的验证 16.7 不使用正则验证IP地址 16.8 IP地址输入框 16.9 判断变量是否已经定义 16.10...

    javascript 常用代码大全

    2.2 动态添加,修改,删除下拉框中的元素 2.3 可以输入内容的下拉框 2.4 多行文本框中只能输入imax文字。如果多输入了,自动减少到imax个文字(多用于短信发送) 3、打印类 3.1 打印控件 4、事件类 4.1 ...

    JavaScript网页特效范例宝典源码

    实例072 通过单选按钮控制其他表单元素是否可用 117 2.4 复选框 117 实例073 不提交表单获取复选框的值 118 实例074 控制复选框的全选或反选 118 实例075 只有一个复选框时控制复选框的全选或反选 119 2.5 密码域 ...

    vuelidate-error-extractor:审核表单组助手,轻松提取错误

    可以是单个表单元素,也可以全部显示表单中的所有错误。主要特征 :rocket: 使用方便 :collision: 灵活-可根据您的需求量身定制 :fire: 可选模板-是的mixin和插槽!!! :oncoming_fist: 没有多余的样式可以自己修改 :...

Global site tag (gtag.js) - Google Analytics