笔记:

  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. 2014end

    人.事.物. 人一年了,从十六班到十六班,从j101到j101再到A207. 她:结婚,然后走了.就是这样,干脆得我都来不及留恋.是的,再也听不到她那很温柔语气,看不到她偶尔激动时就踮起脚尖.还记得晚 ...

  2. HZOI String STL的正确用法

                                                                      String          3s 512 MB描述硬盘中里面有n ...

  3. Small things are better

    Yesterday I had fun time repairing 1.5Tb ext3 partition, containing many millions of files. Of cours ...

  4. Eclipse工具栏太多,自定义工具栏,去掉调试

    Window --> Customize Perspective... --> Tool Bar Visibility 去掉勾选debug  Tip:最新版本Customize Persp ...

  5. 图论:2-SAT

    先象征性地描述一下问题:一组(或者一个)东西有且仅有两种选择,要么选这个,要么选那个,还有一堆的约束条件 图论问题,当然是建边跑图喽 给出模型: 模型一:两者(A,B)不能同时取 那么选择了A就只能选 ...

  6. 通过 CLI 搭建 ghost

    参考: ghost 官网 系统架构说明 架构 架构说明 本实践将 web 接入, nodejs 服务, 数据库分离, 适合生产环境场景. nginx 接入请求, 反向代理后端 nodejs 服务 no ...

  7. 2017年上海金马五校程序设计竞赛:Problem A : STEED Cards (STL全排列函数)

    Description Corn does not participate the STEED contest, but he is interested in the word "STEE ...

  8. python3 购物车练习

    # 购物车# 功能要求:# 要求用户输入总资产,例如:2000# 显示商品列表,让用户根据序号选择商品,加入购物车# 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功.# 可充值.某商品 ...

  9. Linux内核中的GPIO系统之(3):pin controller driver代码分析--devm_kzalloc使用【转】

    转自:http://www.wowotech.net/linux_kenrel/pin-controller-driver.html 一.前言 对于一个嵌入式软件工程师,我们的软件模块经常和硬件打交道 ...

  10. json相关注解和序列化与反序列化

    使用jackson进行序列化时,往往会遇到后台某个实体对象的属性为null,当序列化成json时对应的属性也为null,可以用以下的注解方式完成当属性为null时不参与序列化: @JsonSerial ...