<body>

<form method="post" action="">
<div class="int">
<label for="username">用户名:</label>
<!-- 为每个需要的元素添加required -->
<input type="text" id="username" class="required" />
</div>
<div class="int">
<label for="email">邮箱:</label>
<input type="text" id="email" class="required" />
</div>
<div class="int">
<label for="personinfo">个人资料:</label>
<input type="text" id="personinfo" />
</div>
<div class="sub">
<input type="submit" value="提交" id="send"/><input type="reset" id="res"/>
</div>
</form> </body>
<script type="text/javascript">
//<![CDATA[
$(function(){
/*
*思路大概是先为每一个required添加必填的标记,用each()方法来实现。
*在each()方法中先是创建一个元素。然后通过append()方法将创建的元素加入到父元素后面。
*这里面的this用的很精髓,每一次的this都对应着相应的input元素,然后获取相应的父元素。
*然后为input元素添加失去焦点事件。然后进行用户名、邮件的验证。
*这里用了一个判断is(),如果是用户名,做相应的处理,如果是邮件做相应的验证。
*在jQuery框架中,也可以适当的穿插一写原汁原味的javascript代码。比如验证用户名中就有this.value,和this.value.length。对内容进行判断。
*然后进行的是邮件的验证,貌似用到了正则表达式。
*然后为input元素添加keyup事件与focus事件。就是在keyup时也要做一下验证,调用blur事件就行了。用triggerHandler()触发器,触发相应的事件。
*最后提交表单时做统一验证
*做好整体与细节的处理
*/
//如果是必填的,则加红星标识.
$("form :input.required").each(function(){
var $required = $("<strong class='high'> *</strong>"); //创建元素
$(this).parent().append($required); //然后将它追加到文档中
});
//文本框失去焦点后
$('form :input').blur(function(){
var $parent = $(this).parent();
$parent.find(".formtips").remove();
//验证用户名
if( $(this).is('#username') ){
if( this.value=="" || this.value.length < 6 ){
var errorMsg = '请输入至少6位的用户名.';
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}else{
var okMsg = '输入正确.';
$parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
}
}
//验证邮件
if( $(this).is('#email') ){
if( this.value=="" || ( this.value!="" && !/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value) ) ){
var errorMsg = '请输入正确的E-Mail地址.';
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}else{
var okMsg = '输入正确.';
$parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
}
}
}).keyup(function(){
$(this).triggerHandler("blur");
}).focus(function(){
$(this).triggerHandler("blur");
});//end blur //提交,最终验证。
$('#send').click(function(){
$("form :input.required").trigger('blur');
var numError = $('form .onError').length;
if(numError){
return false;
}
alert("注册成功,密码已发到你的邮箱,请查收.");
}); //重置
$('#res').click(function(){
$(".formtips").remove();
});
})
//]]>
</script>

最新文章

  1. locate
  2. MVC4笔记 Area区域
  3. Longest Common Prefix
  4. RadASM中文乱码问题解决方法!!
  5. linux下Qt问题cannot find -lGL collect2: error: ld returned 1 exit status
  6. JavaScript 零散知识点1 (正则表达式+定时器+hover)
  7. 【深度学习系列2】Mariana DNN多GPU数据并行框架
  8. 利用vertical-align实现行内元素对齐
  9. 基于 Webpack 引入公共库的几种方式
  10. ES6,数组遍历
  11. 解析查询 queryString 请求参数的函数
  12. Oracle 12c RAC
  13. Visual Basic 2017 操作Excel和word【2】持续更新……
  14. ubuntu server 14.04 LTS下搭建LAMP环境之最详细笔记之一U盘安装双系统
  15. Android APK代码混淆与资源混淆详解,你确定不看?
  16. HDU 2063 (二分图最大匹配)
  17. 【转】AngularJs HTTP请求响应拦截器
  18. 微信小程序 - debug(调试)
  19. SpringMVC,Ehcache
  20. php超时时间说明

热门文章

  1. Thread之一:线程生命周期及五种状态
  2. 环境搭建:Vue环境搭建和项目初始化(windows)
  3. [摘]Android逆向分析常用网站
  4. 第十七章 Velocity优化实践(待续)
  5. leetcode424
  6. bitcode编译错误
  7. javaScript之节点操作
  8. 今天出现编码出现了No suitable driver found for jdbc
  9. Vim 配置文件===/etc/vimrc
  10. JavaScript中常用的函数