现在的位置: 首页 > 综合 > 正文

网页制作(七)—照着google注册页面边学边写的一个网页

2013年08月02日 ⁄ 综合 ⁄ 共 11037字 ⁄ 字号 评论关闭

花了五六个小时边学边写了一个注册页面,仿照google邮箱注册的样子,刚开始,看了下google注册页面的原码,当时就不够淡定了,总计有六千多行代码,当时就有点晕了。在心里告诉自己:如果这次放弃,以后都会放弃的,那样的话就彻底会远离IT行业。

嗯!对。总有第一次,总要开始,不管面对什么技术,不要逃避,因为迎头上始终是最好的克服恐惧的方法。

终于,到了昨天晚上就搞的差不多了,过程中,各种google,百度啥的。当然写的很低水平的那种,还望大牛不要嘲笑哈!

下面分享下我写的代码:

首先是html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>google账户注册</title>
<script src="GOOGLE注册脚本.js"></script>
<LINK   rel = "stylesheet"    type = "text/css"    href = "样式表.css" >
</head>
<body background="背景.jpg" onload="function()">

<img align="top" src="google2.jpg" width=100% height="200"/>

<marquee direction=left scrolldelay=100 behavior=alternate scrollamount=10 loop=100 bgcolor=blue hspace=0 vspace=1>欢迎注册google邮箱</marquee>
<div id="column1">
<h2 align="center">注册信息填写</h2>
<form action="" method="post" name="register" >
  <p align="left">
  <label>姓名</label>
  <br />
  <input type="text" name="text1" align="left" value="姓氏" maxlength="10" class="myinput" onFocus="myfun1()" onblur="myfun3()"/>
  <input type="text" name="text2" align="left" value="姓名" maxlength="10" class="myinput" onFocus="myfun2()" onblur="myfun4()"/>
  <br />
  <label>用户名</label>
  <br />
    <input name="text3" type="text" maxlength="20" onblur="myfun5()"/>
   <label>@gmail.com</label>
     <br />
    <label>设置密码</label>
   <br />
  <input name="text4" type="password" maxlength="20" onblur="myfun6()" />
   <br />
  <label>确认密码</label>
   <br />
  <input name="text5" type="password" maxlength="20" onblur="myfun7()"/>
  <br />
  <label>生日</label>
  <br />

<select name=YYYY onchange="YYYYMM(this.value)">  
<option value="">--请选择出生年份--</option>  
</select>  
<select name=MM onchange="MMDD(this.value)">  
<option value="">--请选择出生月份--</option>  
</select>  
<select name=DD>  
<option value="">--请选择出生日期--</option>  
</select>  

<br />
<label>性别</label>
<br />
<input name="myradio" type="radio" value="男" />男
<input name="myradio" type="radio" value="女" />女
<br />
<label>手机</label>
<br />
<input name="text6" type="text" maxlength="11" onblur="myfun8()"/>
<br />
<label>当前邮件地址</label>
<br />
<input name="text7" type="text" maxlength="20" onblur="myfun9()"/>
<br />
<label>位置</label>
<br />
<select id="s1" onchange="check_city()">
<option selected="selected">四川</option>
<option>安徽</option>
<option>浙江</option></select>
<select id="s2" onchange="check_town()">
<option selected="selected">成都</option>
<option>绵阳</option>
</select>
<select id="s3">
<option selected="selected">高新区</option>
<option>金牛区</option></select>
<p align="left">
<input name="submit" type="submit" value="注册" onclick="myfun10()"/>
<input name="reset" type="reset" value="重置" />
</form>
</div >
<div id="column2">
<img src="2.jpg" align="top" width="100%" height="200"/>
<h1>随时随地使用。</h1>
Google 帐户可让您在任何设备上访问自己的所有资料(Gmail、照片等)。您可以通过拍照方式或语音方式进行搜索,还可以获得免费的转弯语音导航功能,自动上传照片,而且不久之后还可通过手机用 Google 电子钱包进行购物。
<p>
<img src="1.jpg" align="top" width="100%" height="200"/>
<h1>您的 Google 帐户不只是能用于Gmail哦!</h1>
您还可以通过自己的 Google 帐户进行交谈、聊天、分享、安排日程、存储、整理、协作、查找信息以及创建内容。您只需一组用户名和密码,就可以使用 Google 的各种产品(包括 Gmail、Google+、Youtube 等),还可以查看自己的搜索记录;系统会随时对所有信息进行备份,您可以通过 Google.com(已经猜到了吧)轻松查找。
</p>
</div>
<div id="column3">
<img src="3.jpg" align="top" width="100%" height="200"/>
<h1>分享多少,自己决定。</h1>
在 Google+ 上有选择地和您的朋友、家人(甚至老板)分享各种内容。和朋友进行环聊、群发消息或者仅关注您感兴趣的人的帖子。一切由您决定。
<p>
<img src="4.jpg" align="top" width="100%" height="200"/>
<h1>提前享用未来的工作方式。</h1>
工作方式随即跃入新时代,一切更出色。即使身在千里之外,也能实时看到同事或合作伙伴上传照片、更新电子表格或润色文章段落。只要注册 Google 帐户,还能免费获得"Google 文档"哦。

</p>
</div>
</body>
</html>

然后是javascript:

// JavaScript Documentlse
function change1()
{
	var p = document.register.location.selectionIndex;
}
function myfun1()
{
   if (document.register.text1.value=="姓氏")
       document.register.text1.value="" ;
}
function myfun2()
{
  if (document.register.text2.value=="姓名")
       document.register.text2.value="" ;
}
/*验证姓氏,只有中文的正则表达式*/
function myfun3()
{
	var e=/^[\u4e00-\u9fa5]/;
	var obj=document.register.text1.value;
	if(obj=="")
	{
		alert("请输入姓氏");
	}
	else if(!e.exec(obj))
	{
		alert("所输入的姓氏不是汉字");
		document.register.text1.value="";
	}
}
/*验证姓名,只有中文的正则表达式*/
function myfun4()
{
	var e=/^[\u4e00-\u9fa5]/;
	var obj=document.register.text2.value;
	if(obj=="")
	{
		alert("请输入姓名");
	}
	else if(!e.exec(obj))
	{
		alert("所输入的姓名不是汉字");
		document.register.text2.value="";
	}
}
/*验证邮箱,只有字母、数字和下划线且不能以下划线开头和结尾的正则表达式*/
function myfun5()
{
	var e=/^(?!_)(?!.*?_$)[a-zA-Z0-9_]+$/;
	var obj=document.register.text3.value;
	if(obj=="")
	{
		alert("请输入用户名");
	}
	else if(!e.exec(obj))
	{
		alert("所输入的内容不符合要求");
		document.register.text3.value="";
	}
}
/*验证密码,只有字母和数字的正则表达式*/
function myfun6()
{
	var e=/^[a-zA-Z0-9_]+$/;
	var obj=document.register.text4.value;
	if(obj=="")
	{
		alert("请输入密码");
	}
	else if(!e.exec(obj))
	{
		alert("所输入的内容不符合要求");
		document.register.text4.value="";
	}
}
/*验证密码是否匹配*/
function myfun7()
{
	var e=/^[a-zA-Z0-9_]+$/;
	var obj1=document.register.text4.value;
	var obj2=document.register.text5.value;
	if(obj2=="")
	{
		alert("请再次输入密码");
	}
	else if(obj1!=obj2)
	{
		alert("两次密码不匹配");
	}
	
}
/*验证手机号码,全是数字的正则表达式*/
function myfun8()
{
	var e=/^\d{11}$/;
	var obj=document.register.text6.value;
	if(obj=="")
	{
		alert("请输入手机");
	}
	else if(!e.exec(obj))
	{
		alert("请输入有效的手机号码");
	}
	
}
function myfun9()
{
	var e=/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	var obj=document.register.text7.value;
	if(obj=="")
	{
		alert("请输入邮件地址");
	}
	else if(!e.exec(obj))
	{
		alert("请输入有效的邮件地址");
	}
	
}

function myfun10()
{
	var obj1=document.register.text1.value;
	var obj2=document.register.text2.value;
	var obj3=document.register.text3.value;
	var obj4=document.register.text4.value;
	var obj5=document.register.text6.value;
	var obj6=document.register.text7.value;
	var objSex="先生";
	if ((document.register.myradio[0].checked==false)&&(document.register.myradio[1].checked==false))
	{
		alert("请选择性别!");
		return false;
	}
	
	if(obj1=="姓氏")
	{
		alert("请输入姓氏");
		return false;
	}
	if(obj2=="姓名")
	{
		alert("请输入姓名");
		return false;
	}
	if(obj3=="")
	{
		alert("请输入用户名");
		return false;
	}
	if(obj4=="")
	{
		alert("请输入密码");
		return false;
	}
	if(obj5=="")
	{
		alert("请输入手机号码");
		return false;
	}
   if(obj6=="")
	{
		alert("请输入邮件地址");
		return false;
	}
	
		if(document.register.myradio[0].checked==false)
		objSex = "女士";
		var message = objSex+"!   恭喜您!注册成功!  ";
		message+="你的姓名是:"+obj1+obj2+"  您注册的邮箱地址是:  "+obj3+"@gmail.com";
		alert(message);
}
function check_city()
{
	var obj1=document.getElementById("s1");
	var obj2=document.getElementById("s2");
	var obj3=document.getElementById("s3");
	obj2.options.length=0;
	obj3.options.length=0;
	if(obj1.selectedIndex==0)
	{
		obj2.options.add(new Option("成都","1"));
		obj2.options.add(new Option("绵阳","2"));
		obj3.options.add(new Option("高新区","1"));
		obj3.options.add(new Option("金牛区","2"));
	}
	else if(obj1.selectedIndex==1)
	{
		obj2.options.add(new Option("合肥","1"));
		obj2.options.add(new Option("六安","2"));
		obj3.options.add(new Option("瑶海区","1"));
		obj3.options.add(new Option("包河区","2"));
	}
	else if(obj1.selectedIndex==2)
	{
		obj2.options.add(new Option("杭州","1"));
		obj2.options.add(new Option("宁波","2"));
		obj2.options.add(new Option("温州","3"));
		obj2.options.add(new Option("台州","4"));
		obj3.options.add(new Option("萧山","1"));
	    obj3.options.add(new Option("富阳","2"));
	    obj3.options.add(new Option("余杭","3"));
		obj3.options.add(new Option("淳安","4"));
	}
}
function check_town()
{
	var obj2=document.getElementById("s2");
	var obj3=document.getElementById("s3");
	obj3.options.length=0;
	if(obj2.options[obj2.selectedIndex].innerHTML=="成都")
	{
		obj3.options.add(new Option("高兴区","1"));
	    obj3.options.add(new Option("金牛区","2"));
	}
	else if(obj2.options[obj2.selectedIndex].innerHTML=="自贡")
	{
		obj3.options.add(new Option("大安区","1"));
	    obj3.options.add(new Option("贡井区","2"));
	}
	else if(obj2.options[obj2.selectedIndex].innerHTML=="合肥")
	{
		obj3.options.add(new Option("瑶海区","1"));
	    obj3.options.add(new Option("包河区","2"));
	}
	else if(obj2.options[obj2.selectedIndex].innerHTML=="六安")
	{
		obj3.options.add(new Option("芜湖","1"));
	    obj3.options.add(new Option("池州","2"));
	}
	else if(obj2.options[obj2.selectedIndex].innerHTML=="杭州")
	{
		obj3.options.add(new Option("萧山","1"));
	    obj3.options.add(new Option("富阳","2"));
	    obj3.options.add(new Option("余杭","3"));
		obj3.options.add(new Option("淳安","4"));
	}
	else if(obj2.options[obj2.selectedIndex].innerHTML=="宁波")
	{
		obj3.options.add(new Option("慈溪","1"));
	    obj3.options.add(new Option("四兴","2"));
	}
}

window.onload = function(){  
strYYYY = document.register.YYYY.outerHTML;  
strMM = document.register.MM.outerHTML;  
strDD = document.register.DD.outerHTML;  
MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];  
  
//先给年下拉框赋内容  
var y = new Date().getFullYear();  
var str = strYYYY.substring(0, strYYYY.length - 9);  
for (var i = (y-30); i < (y+30); i++) //以今年为准,前30年,后30年  
{  
str += "<option value='" + i + "'> " + i + "</option>\r\n";  
}  
document.register.YYYY.outerHTML = str +"</select>";  
  
//赋月份的下拉框  
var str = strMM.substring(0, strMM.length - 9);  
for (var i = 1; i < 13; i++)  
{  
str += "<option value='" + i + "'> " + i + "</option>\r\n";  
}  
document.register.MM.outerHTML = str +"</select>";  
  
document.register.YYYY.value = y;  
document.register.MM.value = new Date().getMonth() + 1;  
var n = MonHead[new Date().getMonth()];  
if (new Date().getMonth() ==1 && IsPinYear(YYYYvalue)) n++;  
writeDay(n); //赋日期下拉框  
document.register.DD.value = new Date().getDate();  
}  
function YYYYMM(str) //年发生变化时日期发生变化(主要是判断闰平年)  
{  
var MMvalue = document.register.MM.options[document.register.MM.selectedIndex].value;  
if (MMvalue == ""){DD.outerHTML = strDD; return;}  
var n = MonHead[MMvalue - 1];  
if (MMvalue ==2 && IsPinYear(str)) n++;  
writeDay(n)  
}  
function MMDD(str) //月发生变化时日期联动  
{  
var YYYYvalue = document.register.YYYY.options[document.register.YYYY.selectedIndex].value;  
if (str == ""){DD.outerHTML = strDD; return;}  
var n = MonHead[str - 1];  
if (str ==2 && IsPinYear(YYYYvalue)) n++;  
writeDay(n)  
}  
function writeDay(n) //据条件写日期的下拉框  
{  
var s = strDD.substring(0, strDD.length - 9);  
for (var i=1; i<(n+1); i++)  
s += "<option value='" + i + "'> " + i + "</option>\r\n";  
document.register.DD.outerHTML = s +"</select>";  
}  
function IsPinYear(year)//判断是否闰平年  
{ return(0 == year%4 && (year%100 !=0 || year%400 == 0))}  
/*
验证数字的正则表达式集 
验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0)  ^\d+$
验证非正整数(负整数 + 0)  ^((-\d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
验证汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$    \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证身份证号(15位或18位数字):^\d{15}|\d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:"01"-"09"和"1""12"
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$    正确格式为:01、09和1、31。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数   ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数  ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数  ^(-?\d+)(\.\d+)?
*/

接着是CSS:

@charset "utf-8";
/* CSS Document */

.myinput 
{
	border: 1px solid;
	border-color:#D4BFFF;
	color:#339
}
body,select
{
font-size:9pt;
font-family:Verdana;
}
a
{
color:red;
text-decoration:none;
}
a:hover{
text-decoration:underline;
}
h1
{
	font-family:"MS Serif", "New York", serif;
	font-style:normal;
	font-weight:300;
	color:#06C;
}
h2
{
	font-family:"MS Serif", "New York", serif;
	font-weight:500;
	color:#00F;
}
#column1 
{ float:left; width: 33%; } 
#column2 
{ float:left; width: 33%; } 
#column3 
{ float:left; width: 33%; }

最后还剩下些资源(图片啥的),要的话可以到下面的地址出下载哈!

http://download.csdn.net/detail/ergouge/4431547

抱歉!评论已关闭.