JS验证表单值

在搭建web程序中,各种表单验证颇多,网上流传的各种框架也有很多,本文只是将自己从用过的一种方式记录。

jsp页面代码

<form id="register-form" action="ipr/addIprApply" method="post">			
		<div class="control-group">
				<label class="control-label">现有员工人数:</label>
				<div class="controls">
					<!-- 1、10以下,2、10-50,3、50-100,4、100-500,5、500-10000,6、10000以上 -->
                    <select name="staffNumber" class="staffNumber">
                        <option value="">请选择...</option>
                        <option value="1">10以下</option>
                        <option value="2">10-50</option>
                        <option value="3">50-100</option>
                        <option value="4">100-500</option>
                        <option value="5">500-10000</option> 
                        <option value="6">10000以上</option>                                  
                    </select>
				</div>				
			</div>	
			<div class="control-group">
				<label class="control-label">其中大专:</label>
				<div class="controls">
					<!-- 1、10%以下,2、10%~20%,3、20%~30%,4、30%~40%,5、40%~50%,6、60%~70%,7、70%~80%,8、80%~90%,9、90%~100% -->
                    <select name="juniorCollegePer" class="juniorCollegePer">
                        <option value="">请选择...</option>
                        <option value="1">10%以下</option>
                        <option value="2">10%~20%</option>
                        <option value="3">20%~30%</option>
                        <option value="4">30%~40%</option>
                        <option value="5">40%~50%</option> 
                        <option value="6">60%~70%</option>
                        <option value="7">70%~80%</option>
                        <option value="8">80%~90%</option> 
                        <option value="9">90%~100%</option>                                  
                    </select>					
				</div>				
			</div>
			<div class="control-group">
				<label class="control-label">通讯地址:</label>
				<div class="controls">
					<input name="address" class="xxlarge valid" type="text" data-status="0" isNull="0" regex="^\S{0,255}$" errorMsg="最大250字符"/>
				</div>				
			</div>
			<div class="control-group">
				<label class="control-label"><em class="st">*</em>联系人:</label>
				<div class="controls">
					<input name="linkman" class="xxlarge valid" type="text" data-status="0"  isNull="1" regex="^\S{2,10}$" errorMsg="联系人须在2~10个字符之间"/>
				</div>				
			</div>
			<div class="control-group">
				<label class="control-label"><em class="st">*</em>联系人电话:</label>
				<div class="controls">
					<input name="telephone" class="xxlarge valid" type="text" data-status="0" isNull="1" regex="^1\d{10}$|^\d{2,4}-\d{7,8}$" errorMsg="手机或固话格式不正确"/>
				</div>				
			</div>
			<div class="control-group">
				<label class="control-label"><em class="st">*</em>联系人邮箱:</label>
				<div class="controls">
					<input name="email" class="xxlarge valid" type="text" data-status="0" isNull="1" regex="^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$" errorMsg="邮箱格式不正确"/>
				</div>				
			</div>
			<div class="control-group">
				<label class="control-label">邮编:</label>
				<div class="controls">
					<input name="zipcode" class="xxlarge valid" type="text" data-status="0" isNull="0" regex="^\d{6,6}$" errorMsg="邮编须为6位数字"/>
				</div>				
			</div>
			<div class="control-group">
				<label class="control-label" for="checkcode"></label>
				<div class="controls">
					<button class="register-btn" type="submit" data-loading-text="处理中...">申请</button>
					<button class="register-btn" type="reset">重置</button>
				</div>
			</div>
		</form>
<script type="text/javascript" src="resources/js/main/ipr_apply.js"></script>
JS代码

$(function(){
	var validFn = function(){
		var ele = $(this);
		var isNull = $(this).attr('isNull');
		var regexStr = $(this).attr('regex');
		var errorMsg = $(this).attr('errorMsg');
		if(ele.siblings('label').length==0){
			ele.parent().append('<label class="info"></label>');
		}
		var info = ele.siblings('label');
		var val = ele.val();
		var flag = true;
		
		// 非空判断
		if (isNull == '1') {
			if (val == null || val == '') {
				info.removeClass('right').addClass('error').html('此项为必填项');
				flag = false;
			} else {
				info.removeClass('error').addClass('right').html('');
			}
		}
		
		// 匹配正则
		if (regexStr != null && regexStr != '' && flag && val != '') {
			var regex = new RegExp(regexStr);
			if (regex.test(val)) {
				info.removeClass('error').addClass('right').html('');
			} else {
				info.removeClass('right').addClass('error').html(errorMsg);
			}
		}
	};
	
	$('.valid').blur(validFn);
	
	$('form').submit(function(){
		$('.valid').each(validFn);
		if ($('.error').length > 0) {
			return false;
		}
		return true;
	});
})


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值