JavaWeb:(练习)五、JavaScript-计算器、表单、正则练习

JavaWeb:(练习)五、JavaScript-计算器、表单、正则练习

一、计算器练习

1、练习目标

​ 一个简单的计算器练习(计算未能实现)

2、HTML代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>简单的计算器</title>
		
		<link href="Demo.css" rel="stylesheet" type="text/css" />
		
		<script src="Demo.js" type="text/javascript"></script>
		
	</head>
	<body>
		
		<div class="computer">
			<input id="screen_id" class="screen" type="text" value="" readonly="readonly"  />
			<table class="keyboard">
				<tr>
					<td>
						<input class="key_button" type="button" value="7" onclick="input('7')" />
					</td>
					<td>
						<input class="key_button" type="button" value="8" onclick="input('8')" />
					</td>
					<td>
						<input class="key_button" type="button" value="9" onclick="input('9')" />
					</td>
					<td>
						<input class="key_button" type="button" value="+" onclick="input('+')" />
					</td>
				</tr>
				<tr>
					<td>
						<input class="key_button" type="button" value="4" onclick="input('4')" />
					</td>
					<td>
						<input class="key_button" type="button" value="5" onclick="input('5')" />
					</td>
					<td>
						<input class="key_button" type="button" value="6" onclick="input('6')" />
					</td>
					<td>
						<input class="key_button" type="button" value="-" onclick="input('-')" />
					</td>
				</tr>
				<tr>
					<td>
						<input class="key_button" type="button" value="1" onclick="input('1')" />
					</td>
					<td>
						<input class="key_button" type="button" value="2" onclick="input('2')" />
					</td>
					<td>
						<input class="key_button" type="button" value="3" onclick="input('3')" />
					</td>
					<td>
						<input class="key_button" type="button" value="*" onclick="input('*')" />
					</td>
				</tr>
				<tr>
					<td>
						<input class="key_button" type="button" value="0" onclick="input('0')" />
					</td>
					<td>
						<input class="key_button" type="button" value="c" onclick="clearScreen()" />
					</td>
					<td>
						<input class="key_button" type="button" value="=" onclick="calculate()" />
					</td>
					<td>
						<input class="key_button" type="button" value="/" onclick="input('/')" />
					</td>
				</tr>
			</table>
		</div>
		
	</body>
</html>

3、CSS代码

*{
	margin: 0;
	padding: 0;
}

.computer{
	background-color: gray;
	
	width: 500px;
	height: 300px;
	
	margin: auto;
	margin-top: 100px;
}

.screen{
	width: 400px;
	height: 40px;
	
	margin: 10px 50px;
}

.keyboard{
	width: 400px;
	height: 200px;
	
	margin: 10px 50px;
}

.key_button{
	background-color: lightgrey;
	font-size: 16px;
	
	width: 80px;
	height: 30px;
	
	margin: 10px 10px;
}

4、js代码

function clearScreen() {
	document.getElementById("screen_id").value = "";
}

function calculate(){
	document.getElementById("screen_id").value = "得到计算结果";
}

function input(value) {
	var keyButtonObj = document.getElementById("screen_id");
	if (keyButtonObj.value == "得到计算结果") {
		keyButtonObj.value = value;
	} else {
		keyButtonObj.value += value;
	}
	
}

5、网页结果

在这里插入图片描述

二、表单、正则练习

1、练习目标

​ 对注册表单做输入验证(性别默认选中不做验证,重点电话,职业和爱好 )。

​ 用户名不能为空,长度为6-10区间

​ 密码不能为空

​ 性别默认选中一个不做处理

​ 职业,爱好必须至少选择一个

​ 当某个内容输入不符合规则时,弹框提示信息.

​ 当所有内容全部按要求完成后,提示信息输入合格

注:实现时适当修改了部分要求

2、HTML代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>输入验证</title>
		
		<link href="Demo.css" rel="stylesheet" type="text/css" />
		
		<script src="Demo.js" type="text/javascript"></script>
		
	</head>
	<body>
		<form>
		<div class="box">
			<h1 class="head">欢迎注册</h1>
			<div class="form_box">
				
				<ul class="form_list">
					<li>
						<span class="tips">用户名:</span>
						<div class="form_content">
							<input id="name_id" type="text" onblur="checkName()" />
							<span id="name_tips_id"></span>
						</div>
					</li>
					<li>
						<span class="tips">密码:</span>
						<div class="form_content">
							<input id="password_id" type="password" onblur="checkPassword()" />
							<span id="password_tips_id"></span>
						</div>
					</li>
					<li>
						<span class="tips">性别:</span>
						<div class="form_content">
							<input type="radio" name="gender" checked="checked" /><input type="radio" name="gender" /><span id="gender_tips_id"></span>
							<div style="clear: left;"></div>
						</div>
					</li>
					<li>
						<span class="tips">电话:</span>
						<div class="form_content">
							<input id="phone_id" type="text" onblur="checkPhone()" />
							<span id="phone_tips_id"></span>
						</div>
					</li>
					<li>
						<span class="tips">职业:</span>
						<div class="form_content">
							<select id="work_id" onchange="checkWork()">
								<option value="" >请选择</option>
								<option value="程序猿" >程序猿</option>
								<option value="工程狮" >工程狮</option>
							</select>
							<span id="work_tips_id"></span>
							<div style="clear: left;"></div>
						</div>
					</li>
					<li>
						<span class="tips">爱好:</span>
						<div class="form_content">
							<input type="checkbox" value="敲代码" name="hobby" onclick="selectThis()"/>敲代码
							<input type="checkbox" value="打游戏" name="hobby" onclick="selectThis()"/>打游戏
							<input type="checkbox" value="唱歌" name="hobby" onclick="selectThis()"/>唱歌
							<input type="checkbox" value="运动" name="hobby" onclick="selectThis()"/>运动
							<span id="hobby_tips_id"></span>
						</div>
						<div style="clear: left;"></div>
					</li>
					<li>
						<span class="address_tips">地址:</span>
						<div class="form_content">
							<textarea id="address_id" class="address_text" onblur="checkAddress()"></textarea>
							<span id="address_tips_id"></span>
						</div>
						<div style="clear: left;"></div>
					</li>
				</ul>
			</div>
			<h3 class="bottom">填写完成后点击下面提交按钮提交表单</h3>
			<div class="button_box">
				<input class="button_submit" type="button" value="提交" onclick="submitList()" />
				<input class="button_reset" type="reset" value="重置" onclick="" />
			</div>
		</div>
		</form>
	</body>
</html>

3、CSS代码

*{
	margin: 0;
	padding: 0;
}

.box{
	background-color: #2493FF;
	width: 500px;
	height: 292px;
	margin: auto;
	margin-top: 100px;
}

.head,.bottom{
	color: white;
	text-align: center;
}

div{
	background-color: #B4DAFF;
}

ul{
	list-style: none;
}

.tips,.address_tips{
	border: 1px #B4DAFF solid;
	width: 178px;
	
	text-align: right;
	float: left;
}

.form_content{
	width: 320px;
	margin-left: 180px;
}

.address_tips{
	margin-top: 10px;
}

.address_text{
	width: 200px;
	height: 40px;
}

.button_box{
	text-align: center;
	padding-top: 10px;
	padding-bottom: 10px;
}

.button_submit,.button_reset{
	padding: 2px 10px;
}

4、js代码

function checkName(){
	var nameObj = document.getElementById("name_id");
	var tipsObj = document.getElementById("name_tips_id");
	if (nameObj.value.length<6 || nameObj.value.length>10) {
		tipsObj.style.color = "red";
		tipsObj.innerHTML = "×在6-10位之间";
		return false;
	} else {
		tipsObj.style.color = "green";
		tipsObj.innerHTML = "√正确";
		return true;
	}
}

function checkPassword(){
	var passwordObj = document.getElementById("password_id");
	var tipsObj = document.getElementById("password_tips_id");
	if (passwordObj.value.length == 0) {
		tipsObj.style.color = "red";
		tipsObj.innerHTML = "×密码不能为空";
		return false;
	} else {
		tipsObj.style.color = "green";
		tipsObj.innerHTML = "√正确";
		return true;
	}
}

function checkPhone(){
	var phoneObj = document.getElementById("phone_id");
	var tipsObj = document.getElementById("phone_tips_id");
	var reg = /^1[3578]\d{9}$/;
	if (reg.test(phoneObj.value)) {
		tipsObj.style.color = "green";
		tipsObj.innerHTML = "√正确";
		return true;
	} else {
		tipsObj.style.color = "red";
		tipsObj.innerHTML = "×错误";
		return false;
	}
}

function checkWork() {
	var workObjs = document.getElementById("work_id");
	var tipsObj = document.getElementById("work_tips_id");
	var work = workObjs.options[workObjs.selectedIndex].value
	if (work == "无") {
		tipsObj.style.color = "red";
		tipsObj.innerHTML = "×请选择";
		return false;
	} else {
		tipsObj.style.color = "green";
		tipsObj.innerHTML = "√正确";
		return true;
	}
}

function checkHobby() {
	var workObjs = document.getElementsByName("hobby");
	var tipsObj = document.getElementById("hobby_tips_id");
	var checkedWorks = new Array;
	var index = 0;
	for (var i=0; i<workObjs.length ;i++) {
		if (workObjs[i].checked) {
			checkedWorks[index++] = workObjs[i].value;
		}
	}
	if (index == 0) {
		tipsObj.style.color = "red";
		tipsObj.innerHTML = "×至少一项";
		return false;
	} else {
		tipsObj.style.color = "green";
		tipsObj.innerHTML = "√正确";
		return true;
	}
}

function selectThis() {
	var tipsObj = document.getElementById("hobby_tips_id");
	tipsObj.innerHTML = "";
}

function checkAddress(){
	var addressObj = document.getElementById("address_id");
	var tipsObj = document.getElementById("address_tips_id");
	if (addressObj.value.length == 0) {
		tipsObj.style.color = "red";
		tipsObj.innerHTML = "×不能为空";
		return false;
	} else {
		tipsObj.style.color = "green";
		tipsObj.innerHTML = "√正确";
		return true;
	}
}

function submitList() {
	var flag = checkName() && checkPassword() && checkPhone() && checkWork() && checkHobby() && checkAddress();
	if (flag) {
		alert("提交成功!");
	} else {
		alert("数据错误");
	}
}

5、网页结果

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值