每天一个JavaScript实例-检测表单数据

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>每天一个JavaScript实例-检测表单数据</title>
<style>
	[role="alert"]{
		background-color: #fcc;
		font-weight: bold;
		padding:5px;
		border:1px dashed #000;
	}
	div{
		margin:10px 0;
		padding:5px;
		width:400px;
		background-color: #fff;
	}
</style>

<script>
window.onload = function(){
	document.getElementById("thirdfield").onchange = validateField;
	document.getElementById("firstfield").onblur = mandatoryField;
	document.getElementById("testform").onsubmit = finalCheck;
}
function validateField(){
	removeAlert();
	if(!isNaN(parseFloat(this.value))){
		resetField(this);
	}else{
		badField(this);
		generateAlert("You entered an invalid value in Third Field. only numeric values such as 105 or 3.45 are allowed");
	}
}
function removeAlert(){
	var msg = document.getElementById("msg");
	if(msg){
		document.body.removeChild(msg);
	}
}
function resetField(elem){
	elem.parentNode.setAttribute("style","background-color:#fff");
	var valid = elem.getAttribute("aria-invalid");
	if(valid) elem.removeAttribute("aria-invalid");
}
function badField(elem){
	elem.parentNode.setAttribute("style","background-color#fee");
	elem.setAttribute("aria-invalid","true");
}
function generateAlert(txt){
	var txtNd = document.createTextNode(txt);
	msg = document.createElement("div");
	msg.setAttribute("role","alert");
	msg.setAttribute("id","msg");
	msg.setAttribute("class","alert");

	msg.appendChild(txtNd);
	document.body.appendChild(msg);
}

function mandatoryField(){
	removeAlert();
	if(this.value.length > 0 ){
		resetField(this);
	}else{
		badField(this);
		generateAlert("You must enter a value into First Field");
	}
}
function finalCheck(){
	//console.log("aaa");
	removeAlert();

	var fields =document.querySelectorAll('input[aria-invalid="true"]');
	//var fields =document.querySelectorAll("input[aria-invalid='true']");//错误!!!
	console.log(fields);
	if(fields.length > 0){
		generateAlert("You have incorrect fields entries that must be fixed before you can submit this form");
		return false;
	}
}
</script>

</head>

<body>
<form id = "testform">
	<div>
		<label for="firstfield">*first Field:</label><br />
		<input id="firstfield" name = "firstfield" type = "text" aria-required = "true" />
	</div>

	<div>
		<label for="secondfield">Second Field:</label><br />
		<input id="secondfield" name = "secondfield" type = "text" />
	</div>

	<div>
		<label for="thirdfield">Third Field(numeric):</label><br />
		<input id="thirdfield" name = "thirdfield" type = "text" />
	</div>

	<div>
		<label for="fourthfield">Fourth Field:</label><br />
		<input id="fourthfield" name = "fourthfield" type = "text" />
	</div>

	<input type="submit" value = "Send Data" />
</form>

</body>
</html>

时间: 2024-10-08 14:34:51

每天一个JavaScript实例-检测表单数据的相关文章

每天一个JavaScript实例-检測表单数据

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-检測表单数据</title> <style> [role="alert"]{ background-color: #f

每天一个JavaScript实例-防止重复表单提交

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-防止重复表单提交</title> <style> #refresh{ display: none; width:200px; height

【ASP.NET Web API教程】5.2 发送HTML表单数据:URL编码的表单数据

注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内容. 5.2 Sending HTML Form Data 5.2 发送HTML表单数据 本文引自:http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-1 By Mike Wasson|June 15, 2012 作者:Mike Wasson | 日期:2012-6-15 Part

JavaScript笔记:表单脚本

JavaScript最初的应用之一,就是分担服务器处理表单的责任,打破处处依赖服务器的局面. 1.表单的基础知识 在javascript中,表单是用HTMLFormElement类型来表示的.HTMLFormElement继承了HTMLElement,因而与其他HTML元素有相同的默认属性,不过HTMLFormElement也有它自己独有的属性和方法: acceptCharset:服务器能够处理的字符集 action:接受请求的URL elements:表单中所有控件的集合 enctype:请求

【flask】处理表单数据

 表单数据的处理涉及很多内容,除去表单提交不说,从获取数据到保存数据大致会经历以下步骤: 解析请求,获取表单数据. 对数据进行必要的转换,比如将勾选框的植转换为Python的布尔值. 验证数据是否符合要求,同时验证CSRF令牌 如果验证未通过则需要生成错误消息,并在模板中显示错误消息. 如果通过验证,就把数据保存到数据库或做进一步处理. 验证表单数据 1. 客户端验证和服务器端验证表单的验 证通 常分为 以下两种形式:( 1)客户端验证客户端验证( client side validation)

使用jQuery实现跨域提交表单数据

我们在WEB开发中有时会遇到这种情况,比如要从A网站收集用户信息,提交给B网站处理,这个时候就会涉及到跨域提交数据的问题.本文将给您介绍如何使用jQuery来实现异步跨域提交表单数据. 在jQuery中,我们使用json数据类型,通过getJSON方法来实现从服务端获取或发送数据,而当要向不同远程服务器端提交或者获取数据时,要采用jsonp数据类型.使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面.服务器端应当在JSON数据前加上回调函数名,以便

Servlet学习笔记(二):表单数据

很多情况下,需要传递一些信息,从浏览器到 Web 服务器,最终到后台程序.浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法. 1.GET 方法:GET 方法向页面请求发送已编码的用户信息.页面和已编码的信息中间用 ? 字符分隔,如下所示:http://www.test.com/hello?key1=value1&key2=value2 GET 方法是默认的从浏览器向 Web 服务器传递信息的方法,它会产生一个很长的字符串,出现在浏览器的地址栏中.如果您

检测表单是否合法,为什么不能用n++的探讨

做表单处理,一般都是要检查用户输入的内容是否合法,然后全部合法才输出的 于是我们就要面对一个问题,如何检查是不是全部合法?不合法的时候怎么终结掉"提交"按钮的功能呢? 一开始我提出了定义一个变量n,然后用户每次输入一个数据就进入检测函数,然后函数结尾处只要判断通过就n++: 最终只需要判断n的值是否达到需求值就可以决定"提交"按钮是否作用了. 但是,后来我也发现这个方法的不好之处了,虽然很方便,但是始终无法排除掉用户重复输入同一个数据的干扰,要是用户一直输入一个合法

jQuery序列化表单数据 serialize()、serializeArray()及使用

1.serialize()方法 格式:var data = $("form").serialize(); 功能:将表单内容序列化成一个字符串. 这样在ajax提交表单数据时,就不用一一列举出每一个参数.只需将data参数设置为 $("form").serialize() 即可. 2.serializeArray()方法 格式:var jsonData = $("form").serializeArray(); 功能:将页面表单序列化成一个JSON