html结构,用到了label与span

<label class="relative"><input type="text" name="name" id="name" class="colorblur" size="40" value="{sh:$info.name}"/><span class="msg_dialog"></span></label>

添加样式

.relative{
position: relative;
font-weight: normal; }
.msg_dialog{
display: block;
width:200px;
height:auto;
position: absolute;
right:-200px;
top:5px;
color:red;
overflow: hidden;
}

表单添加checkForm()

<form action="{sh::U('User/addAgent')}" method="post" id="myform" onsubmit="return checkform();">
function checkform(){
if($("#name").val() == ''){
showdialog($("#name"),"姓名不能为空");
$("#name").focus();
return false;
} var email_val = $("#email").val();
if(email_val == ''){
showdialog($("#email"),"邮箱不能为空");
$("#email").focus();
return false;
}
reg=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
if(!reg.test(email_val)){
showdialog($("#email"),"邮箱不合法");
$("#email").focus();
return false;
} // ajax email是否已存在
if(ajaxCheck('email',email_val) == 1){
showdialog($("#email"),"邮箱已存在,请勿重复添加");
$("#email").focus();
return false;
} var tel_val = $("#tel").val();
if(tel_val == '' || tel_val.length != '11'){
showdialog($("#tel"),"手机不能为空或手机号有误");
$("#tel").focus();
return false;
} // ajax 验证号码是否已存在
if(ajaxCheck('tel',tel_val) == 1){
showdialog($("#tel"),"号码已存在");
$("#tel").focus();
return false;
} var reg = /^[0-9a-zA-Z]+$/;
if($("#password").val() == '' || $("#password").val().length <6 || !reg.test($("#password").val())){
showdialog($("#password"),"密码不能为空且必须为字符或数字");
$("#password").focus();
return false;
} if($("#map_lng").val() == ''){
showdialog($("#map_lng"),"请标注代理商位置");
return false;
}
}

showdialog() 方法负责处理提示信息

function showdialog(obj,msg){
obj.siblings(".msg_dialog").text(msg).show().delay(2000).hide(0);
}

delay(2000).hide(0) 延迟两秒后消失
ajax验证

// ajax验证邮箱号码
function ajaxCheck(t,v){
var res = '';
$.ajax({
tpye:"post",
url:"{sh::U('User/ajax','todo=checkVal')}",
data:"t="+t+"&v="+v,
async: false,
success:function(data){
res = data;
}
});
return res;
}
public function ajax(){
$todo = $this->_request('todo','trim');
switch ($todo) {
case 'checkVal':
$t = $this->_request('t','trim');
$v = $this->_request('v','trim');
if(empty($t) || empty($v)){
exit('0');
}
$agentModel = M('Agent');
if($t == 'email'){
$count_email = $agentModel->where(array('email'=>$v))->count();
if($count_email > 0){
exit('1');
}
} if($t == 'tel'){
$count_tel = $agentModel->where(array('tel'=>$v))->count();
if($count_tel > 0){
exit('1');
}
}
break; default:
# code...
break;
}
}

效果

两秒后红色提示将消失

自制简单表单验证relative与absolute定位的更多相关文章

  1. JS简单表单验证

    这里我是写了一个简单的注册表单验证功能,亲测有效,一起来看看吧! 首先我的HTML代码是这样的: class大家可以忽略一下,这里我项目使用的是bootstrap的样式. 输入用户名和密码用的是正则表 ...

  2. 如何利用jQuery进行简单表单验证

    <!DOCTYPE html><html><head><meta charset="utf-8"><meta name=&qu ...

  3. jq之简单表单验证

    <body> <form method="post" action=""> <div class="int"& ...

  4. 模仿 BootstrapValidator 自制 模块化 表单验证

    index.html : <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  5. 关于ajax用户名验证和jquery实现简单表单验证

    首先来说用户名验证: 前台: <tr> <td class="tableleft">教师编号</td> <td><input ...

  6. AJAX案例二:简单表单验证

    案例:如果用户名输入为张三,那么在失去焦点时后面会显示该用户名已被注册,否则显示可以注册! <%@ page language="java" import="jav ...

  7. JavaScrip——简单练习(输出方式,简单表单验证)

    <script> //输出方式 document.write(Date());//获取当前时间 document.write(1); document.write("<p& ...

  8. AngularJS的简单表单验证

    代码下载:https://files.cnblogs.com/files/xiandedanteng/angularjsCheckSimpleForm.rar 代码: <!DOCTYPE HTM ...

  9. 初学structs2,表单验证

    一.简单表单验证示例 structs.xml配置 <struts> <package name="validate" namespace="/valid ...

随机推荐

  1. [Android]通过setImageURI设置网络上面的图片

    设置imageView显示网络上的图片 picUrl = new URL(getIntent().getExtras().getString("map_url")); Bitmap ...

  2. VS如何关闭 ReSharper 提示

    IDE->工具->选项->click "suspend now" button

  3. UESTC_小panpan学图论 2015 UESTC Training for Graph Theory<Problem J>

    J - 小panpan学图论 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) S ...

  4. HDOJ-1015 Safecracker(DFS)

    http://acm.hdu.edu.cn/showproblem.php?pid=1015 题意:给出一个目标值target和一个由大写字母组成的字符串 A-Z分别对应权值1-26 要求从给出的字符 ...

  5. 直接使用ip访问google搜索

    173.194.127.148 173.194.127.51 173.194.36.48 (亲测,个人在用,有的ip有时候应该不能访问); 173.194.72.101 173.194.72.103 ...

  6. c++在函数后面加const

    非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误),表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中,任意修改它所在的类的成员的操作都是不允许的(因为 ...

  7. Linux 块设备驱动 (二)

    linux下Ramdisk驱动 1 什么是Ramdisk Ramdisk是一种模拟磁盘,其数据实际上是存储在RAM中,它使用一部分内存空间来模拟出一个磁盘设备,并以块设备的方式来组织和访问这片内存.对 ...

  8. 新手使用ThinkPHP3.2.3的命名空间问题

    ThinkPHP3.2.3的命名空间问题 命名空间的出现是为了避免命名冲突. 我们在TP3.2.3的Collection和Model的创建过程中经常会遇到这样的两行代码: 这是在控制器中的写法.其中n ...

  9. 45 个非常有用的 Oracle 查询语句(转)

    这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有 Oracle 开发者都必备的技能,所以快快收 ...

  10. 0..n去掉一个数,给你剩下的数,找出去掉的那个数

    转载请注明转自blog.csdn.net/souldak , 微博@evagle 首先,考虑没有去掉那些数,如果n是奇数,n+1个最低位肯定是0101...01,count(0)=count(1),如 ...