笔记:

  1.

  onblur事件:onblur 事件会在对象失去焦点时发生。http://www.w3school.com.cn/jsref/event_onblur.asp

  onkeyup事件:onkeyup 事件会在键盘按键被松开时发生。http://www.w3school.com.cn/jsref/event_onkeyup.asp

  这两者事件的发生机制截然不同,在用js对表单进行验证的时候,建议大家,尽量用onkeyup,因为交互性好,能够实时反馈用户输入的有效性;

  2.

  js中空字符串“” 是等于false  ,大家可以测试下,alert(“”==false);这点,一定要注意;

  3.

  js方法的返回值,以及return;(跟java、C#等等,一样)。return可以直接跳出方法。

  4.

  对于表单验证,数据ok了,怎么提交,如果数据不对,怎么让表单不提交。

  <input type="submit" value="提交数据">

  <input type="button" value="提交数据"> 

  5.

  如何利用onclick 和onsubmit 以及form.submit方法,以及什么时候用最好;

  onclick事件:onclick 事件会在对象被点击时发生。请注意, onclick 与 onmousedown 不同。单击事件是在同一元素上发生了鼠标按下事件之后又发生了鼠标放开事件时才发生的。http://www.w3school.com.cn/jsref/event_onclick.asp

  onsubmit事件:onsubmit 事件会在表单中的确认按钮被点击时发生。http://www.w3school.com.cn/jsref/event_onsubmit.asp

  form.submit(Html DOM submit):submit() 方法把表单数据提交到 Web 服务器。http://www.w3school.com.cn/jsref/met_form_submit.asp

  上面的东西,经常用到,参考链接的讲解以及实例

function check() {    // 表单提交时执行, 验证所有表单项
var bUsername = checkUsername();
var bPassword = checkPassword();
var bConfirm = checkConfirm();
var bEmail = checkEmail();
var bCity = checkCity();
var bGender = checkGender();
var bInterest = checkInterest();
var result = bUsername && bPassword && bConfirm && bEmail && bCity && bGender && bInterest;
return result; // 如果所有表单项都验证成功, 返回true
} function checkUsername() {
var value = document.getElementById("username").value; // 获取input, 获取值
value = trim(value); // 去掉前后空白
var span = document.getElementById("usernameMsg"); // 获取SPAN
var msg = ""; // 错误消息
var regex = /^\w{1,10}$/; // 正则表达式: 字母数字下划线, 1到10位
if (!value) // 判断输入值是否为空
msg = "用户名必须填写"; // 如果是空的, 那么修改错误消息
else if (!regex.test(value)) // 如果不能匹配正则
msg = "用户名不合法";
span.innerHTML = msg; // 把错误消息放入SPAN
span.parentNode.parentNode.style.color = msg ? "red" : "black"; // 根据是否包含错误提示, 改变tr颜色
return msg == ""; // 如果没有错误消息, 代表验证成功
}
function checkPassword() {
var value = document.getElementById("password").value;
var span = document.getElementById("passwordMsg");
var msg = "";
var regex = /^.{6,16}$/;
if (!value)
msg = "密码必须填写";
else if (!regex.test(value)) // 如果不能匹配正则
msg = "密码不合法";
span.innerHTML = msg;
span.parentNode.parentNode.style.color = msg ? "red" : "black";
return msg == "";
}
function checkConfirm() {
var confirmValue = document.getElementById("confirm").value;
var passwordValue = document.getElementById("password").value;
var span = document.getElementById("confirmMsg");
var msg = "";
if (confirmValue != passwordValue)
msg = "密码必须保持一致";
span.innerHTML = msg;
span.parentNode.parentNode.style.color = msg ? "red" : "black";
return msg == "";
}
function checkEmail() {
var value = document.getElementById("email").value;
value = trim(value);
var span = document.getElementById("emailMsg");
var msg = "";
var regex = /^[\w-]+@([\w-]+\.)+[a-zA-Z]{2,4}$/;
if (!value)
msg = "邮箱必须填写";
else if (!regex.test(value))
msg = "邮箱格式不合法";
span.innerHTML = msg;
span.parentNode.parentNode.style.color = msg ? "red" : "black";
return msg == "";
}
function checkCity() {
var value = document.getElementById("city").value;
var span = document.getElementById("cityMsg");
var msg = "";
if (!value)
msg = "城市必须选择";
span.innerHTML = msg;
span.parentNode.parentNode.style.color = msg ? "red" : "black";
return msg == "";
}
function checkGender() {
var genderArr = document.getElementsByName("gender");
var span = document.getElementById("genderMsg");
var msg = "";
if (!genderArr[0].checked && !genderArr[1].checked)
msg = "性别必须选择";
span.innerHTML = msg;
span.parentNode.parentNode.style.color = msg ? "red" : "black";
return msg == "";
}
function checkInterest() {
var interestArr = document.getElementsByName("interest");
var span = document.getElementById("interestMsg");
var msg = "";
if (!interestArr[0].checked && !interestArr[1].checked && !interestArr[2].checked)
msg = "兴趣必须选择";
span.innerHTML = msg;
span.parentNode.parentNode.style.color = msg ? "red" : "black";
return msg == "";
}
// 利用正则去掉空字符串
function trim(s) { return s.replace(/^\s+|\s+$/g, ""); }
@{
ViewBag.Title = "Index";
}
<script src="~/Scripts/check.js"></script>
<script type="text/javascript"> </script> <h2>静态页面表单中js验证</h2>
<body>
<form action="~/HTML/success.html" method="get" id="form" onsubmit="return check();">
<table width="500" align="center" cellpadding="5" cellspacing="0">
<tr>
<td align="right" style="width:150px">用户名:</td>
<td>
<input type="text" name="username" id="username" onkeyup="checkUsername();">
<span id="usernameMsg"></span>
</td>
</tr>
<tr>
<td align="right">密码:</td>
<td>
<input type="password" name="password" id="password" onkeyup="checkPassword();">
<span id="passwordMsg"></span>
</td>
</tr>
<tr>
<td align="right">确认密码:</td>
<td>
<input type="password" id="confirm" onkeyup="checkConfirm();">
<span id="confirmMsg"></span>
</td>
</tr>
<tr>
<td align="right">邮箱:</td>
<td>
<input type="text" name="email" id="email" onkeyup="checkEmail();">
<span id="emailMsg"></span>
</td>
</tr>
<tr>
<td align="right">城市:</td>
<td>
<select name="city" id="city" onchange="checkCity();">
<option value="">-请选择城市-</option>
<option value="bj">西二旗</option>
<option value="cd">上地</option>
<option value="gz">西三旗</option>
<option value="sh">望京</option>
<option value="wh">回龙观</option>
<option value="sz"></option>
</select>
<span id="cityMsg"></span>
</td>
</tr>
<tr>
<td align="right">性别:</td>
<td>
<input type="radio" name="gender" value="male" onclick="checkGender();"> 男
<input type="radio" name="gender" value="female" onclick="checkGender();"> 女
<span id="genderMsg"></span>
</td>
</tr>
<tr>
<td align="right">兴趣:</td>
<td>
<input type="checkbox" name="interest" value="sing" onclick="checkInterest();"> data2
<input type="checkbox" name="interest" value="dance" onclick="checkInterest();"> lol
<input type="checkbox" name="interest" value="mahjong" onclick="checkInterest();"> 炉石传说
<span id="interestMsg"></span>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="提交数据">
</td>
</tr>
</table>
</form>
</body>

var bUsername = checkUsername();
var bPassword = checkPassword();
var bConfirm = checkConfirm();
var bEmail = checkEmail();
var bCity = checkCity();
var bGender = checkGender();
var bInterest = checkInterest();

上面的方法的返回值是  return msg==""   。返回的 boolean类型的值。

所以,后面才能用

var result = bUsername && bPassword && bConfirm && bEmail && bCity && bGender && bInterest;
return result; // 如果所有表单项都验证成功, 返回true

静态页面表单中js验证的更多相关文章

  1. Struts2(二)---将页面表单中的数据提交给Action

    问题:在struts2框架下,如何将表单数据传递给业务控制器Action. struts2中,表单想Action传递参数的方式有两种,并且这两种传参方式都是struts2默认实现的,他们分别是基本属性 ...

  2. 静态页分页功能js代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. JS实现HTML静态页传值的方法

    JS实现HTML静态页传值的方法 作者:前端开发-武方博 发布:2012-10-29 分类:javascript 阅读:8,735次     此处使用JS方式实现静态页之间值传递,其实很简单,废话不多 ...

  4. JavaScript学习——使用JS完成注册页面表单校验

    1.步骤分析 第一步:确定事件(onsubmit)并为其绑定一个函数 第二步:书写这个函数(获取用户输入的数据<获取数据时需要在指定位置定义一个 id>) 第三步:对用户输入的数据进行判断 ...

  5. 把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进)

    #把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进) ##背景 项目中经常需要把JSON数据填充到页面表单,一开始我使用easyui自带的form load方法,觉得效率很低,经 ...

  6. “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成)

    “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成) 一.这篇文章主要是要实现:图片新闻的添加,无刷新图片的上传,以及添加新闻静 ...

  7. 九月二十八JS验证

    js表单验证 js可用发来在数据被送往服务器前对HTML表单中的这些输入数据进行验证 被js验证的这些典型的表单数据有: >用户是否已填写表单中的必填项目: >用户输入的邮件地址是否是合法 ...

  8. SpringMVC接收页面表单参数-java-电脑编程网

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  9. nginx反向代理转发后页面上的js css文件无法加载【原创】

    故障现象:nginx做代理转发后,发现页面上的js css文件无法加载,页面样式乱了. 原因:没有配置静态资源 解决js css文件无法加载无法访问的问题 解决办法: 修改配置文件nginx.conf ...

随机推荐

  1. Session接口常用方法

    org.hibernate.Session接口 beginTransaction 开启事务 clear 清缓存 close 关闭session connection - 过时 获取Connection ...

  2. Foundation框架-NSCalendar

    NSCalendar 日历类 Cocoa中对日期和时间的处理 NSCalendar (一) (2008-11-12 21:54:10) NSCalendar用于处理时间相关问题.比如比较时间前后.计算 ...

  3. 大数据Hadoop-2

    大数据Hadoop学习之搭建Hadoop平台(2.1) 关于大数据,一看就懂,一懂就懵. 大数据的发展也有些年头了,如今正走在风口浪尖上,作为小白,我也来凑一份热闹. 大数据经过多年的发展,有着不同的 ...

  4. ASP.NET页面之间传值Server.Transfer(4)

    这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效. Serve ...

  5. [cdoj 1344]树状数组区间加等差数列

    题目链接:http://acm.uestc.edu.cn/#/problem/show/1344 区间加等差数列本质上就是区间修改区间查询,本来想用线段树做,结果这个题就是卡空间和时间……不得已学了区 ...

  6. [hdu 3068] Manacher算法O(n)最长回文子串

    一个不错的讲解:https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/01.05.md # ...

  7. oralce的客户端sqlplus

    安装完oracle后,默认的客户端是sqlplus,还有一个公司常用的是PLSQLdeveloper 客户端软件,另外Navicat primie这个可以连接mysql.sqlserver.oracl ...

  8. 51Nod 1118 机器人走方格--求逆元

    (x/y) %mod =x*(y^(mod-2))%mod; 在算x,y的时候可以一直mod 来缩小 y^(mod-2)显然是个快速幂 #include <iostream> #inclu ...

  9. c++对拍实现

    直接上代码吧. #include<bits/stdc++.h> using namespace std; int main(){ while(1){ system("./cute ...

  10. mhn 实际部署记录

    新增蜜罐时需要注意,server/collector_v2.py中的DEFAULT_CHANNELS,没有注册这个事件是接收不到新蜜罐的消息的