表单验证分为以下几个部分:
1) 不为空
2) 验证数字字段
3) 验证电话号码
4)验证用户ID
5)验证日期
6)验证电子邮件地址
7)验证复选框 or 单选按钮是否被选中
8)验证select元素的选项是否被选中
9)把样式应用到选项和表单按钮
10)一步勾选或取消所有的复选框
11)验证两个字段
12)验证密码和确认密码字段是否匹配
13)急用某些字段
14)验证整个表单
16)表单数据序列化
一、验证不为空
$(document).ready(function(){
$('.error').hide();
$('.submit').click(function(event){
//文本框的内容:
var data = $('.infobox').val();
var len = data.length;
if(len<1){
$('.error').show();
event.preventDefault();//禁止自动提交form表单
}else{
$('.error').hide();
}
})
});
二、验证数字字段
$('.submit').click(function(event){
//文本框的内容:
var data = $('.agebox').val();
var len = data.length;
var c;
for(var i=0;i<len;i++)
{
c = data.charAt(i).charCodeAt(0);//利用charCodeAt()方法查找其ASCII值
//alert("c="+c)
//如果字符的ASCII值小于数字0(ASCII值48)或大于数字9(ASCII值57)就意味着不是数字
if(c<48 || c>57){
$('.ageerror').show();
event.preventDefault();
break;
}
else{
$('.ageerror').hide();
}
}
})
parseInt(String) --- 将字符串解析为int型
三、用正则表达式验证
1、验证电话号码
function validate_phoneno(ph){
var pattern = new RegExp(/^[0-9+-]+$/); // 文本框可以输入数字、+、- 这种形式多次 ‘+‘--多次 ^开始 $结束
return pattern.test(ph);
}
2、验证userid
function validate_userid(ph){
var pattern = new RegExp(/^[0-9a-z_]+$/);
return pattern.test(ph);
}
3、验证电子邮箱地址:
function validate_date(date){
var pattern = new RegEXP(/ ^[\w-]+(\.[\w-]+)*@([\w-]+\.) +[a-zA-Z]+$ /);
return pattern.test(date);
}
电子邮箱的正则表达式解释如下:
/^[\w-]+ 意味着电子邮件地址的开头可以是字母、数字、下划线或连字符。^表示开始。\w表示字母数字下划线。右方括号(])之后的+号表示一次或多次。
(\.[\w-]+)* 表示模式由. (半角句号)后跟1个或多个字母数字划线或连字符组成,*号表示0次或多次
@
([\w-]+\.)+ 字母、数字、下划线或连字符还有句点(.)可以出现一次或是多次
[a-zA-Z]+$ 定义电子邮件的末尾,即电子邮件地址必须以大写或是小写字母(可以出现一次或多次)结尾。 $表示结束
4、验证日期:
function validate_date(date){
var pattern = new RegEXP(/ \b\d{1,2}[\ /-] \ d{1,2}[\ / -]\d{4} \ b /);
return pattern.test(date);
}
日期的正则表达式解释(某月某日某年 02/23/2012):
\b 在正则表达式的开头和结尾,表示单词边界,也就是说,单词必须与模式完全匹配
\d{1,2} 意味出现1到2两位数字
[\ / -] 意味着出现符号/ 或 -
\d{4}意味着正好出现4位数字
四、验证复选框是否选中:
$(document).ready(function(){
$('.error').hide();
$('.submit').click(function(event){
var count = 0;
var amt=0;
$('form').find(':checkbox').each(function(){
if($(this).is(':checked')) {
count++;
amt += parseInt($(this).val());
}
});
alert('count='+count)
if(count==0){
$('.error').show();
$('p.result').hide();
}else{
$('.error').hide();
$('p.result').show();
$('p.result').text('the total value of you selected is '+amt);
}
event.preventDefault();
})
});
五、验证下拉列表框是否被选中
$count = $('select option:checked').val();
六、全选和反选
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//全选 or 反选
$('#checkall').click(function(){
$("input[type='checkbox']").attr('checked', $('#checkall').is(':checked'));
});
$('form').find(':checkbox').click(function(){
var amt=0;
$('div').filter(':gt(0)').find(':checkbox').each(function(){
//if($('div:gt(0)')){
if($(this).is(':checked'))
{
amt = amt +parseInt($(this).val());
}
//}
});
$('p').remove();
$('<p>').insertAfter('div:eq(4)');
$('p').text('your bill is $'+amt);
})
})
</script>
<body> <form >
<div class="infobox">
<input type="checkbox" id="checkall" >Check/Uncheck all checkboxes
</div><br/>
<div class="infobox">
<input type="checkbox" id="pizza" name="pizza" value=5 >Pizza $5
</div>
<div class="infobox">
<input type="checkbox" id="hotdog" name="hotdog" value=2 >hotdog $2
</div>
<div class="infobox">
<input type="checkbox" id="coke" name="coke" value=1 >coke $1
</div>
<div class="infobox">
<input type="checkbox" id="fries" name="fries" value=3 >French Fries $3
</div>
</form>
</body>
七、密码和确认密码是否一致
<script type="text/javascript">
$(document).ready(function(){
$('.error').hide();
$('.submit').click(function(event){
data = $('.password').val();
var len = data.length;
if(len <1){
$('.password').next().show();
}else
{
$('.password').next().hide();
}
if($('.password').val() != $('.confpass').val())
{
$('.confpass').next().show();
}
else
{
$('.confpass').next().hide();
}
event.preventDefault();
})
})
</script>
<body>
<form>
<div>
<span class="label" >User Id</span> <input type="text" class="userid" name="userid" />
</div>
<div>
<span class="label" >Password</span> <input type="password" class="password" name="password" />
<span class="error" > Password can not be blank1</span>
</div>
<div>
<span class="label" >Confirm Password</span> <input type="password" class="confpass" name="confpass" />
<span class="error" > Password and Confirm password don't match </span>
</div>
<input type="submit" class="submit" value="submit" />
</form> </body>