forceChangePWD.html 3.91 KB
<div class="row">
	<div class="col-md-12">
		<!-- BEGIN VALIDATION STATES-->
		<div class="portlet light portlet-fit portlet-form bordered">
			<div class="portlet-body">
				<form class="form-horizontal" id="forceChangePWDForm">
					<div class="alert alert-danger display-hide">
						<button class="close" data-close="alert"></button>您的输入有误,请检查下面的输入项
					</div>
					<div class="form-group" style="margin-top: 60px">
						<label class="control-label col-md-5">原始密码:
						</label>
						<div class="col-md-4">
							<div class="input-icon right">
								<i class="fa"></i>
								<input type="password" class="form-control" name="oldPWD" /> </div>
						</div>
					</div>
					<div class="form-group">
						<label class="control-label col-md-5">输入新密码:
						</label>
						<div class="col-md-4">
							<div class="input-icon right">
								<i class="fa"></i>
								<input type="password" class="form-control" name="newPWD" id="newPWD"/> </div>
						</div>
					</div>
					<div class="form-group">
						<label class="control-label col-md-5">确认新密码:
						</label>
						<div class="col-md-4">
							<div class="input-icon right">
								<i class="fa"></i>
								<input type="password" class="form-control" name="cnewPWD" /> </div>
						</div>
					</div>
					<div class="form-actions">
						<div class="row">
							<div class="col-md-offset-5 col-md-7">
								<button type="submit" id="confirm" class="btn green">确定</button>
							</div>
						</div>
					</div>
				</form>
			</div>
		</div>
	</div>
</div>

<script>
	$(function(){
		var form = $('#forceChangePWDForm');
		//表单 validate
		var error = $('.alert-danger', form);

		var validate = function (pwd) {
			var flag = true;
			for (var i = 1; i < pwd.length - 1; i++) {
				var first = pwd.charCodeAt(i - 1);
				var second = pwd.charCodeAt(i);
				var third = pwd.charCodeAt(i + 1);
				if (!(first >= 48 && third <= 57 || first >= 65 && third <= 90 || first >= 97 && third <= 122)) {
					continue;
				}
				if (third - second == 1 && second - first == 1) {
					flag =  false;
				}
			}

			return flag;
		}

		$.validator.addMethod("passwordrule", function(value, element) {
			var reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*?[#?!@$%^&*-.]).{8,16}$/;
			return this.optional(element) || reg.test(value) && validate(value);
		}, "需包含大小写字母、数字、以及特殊符号的8-16位字符,并不能有123、abc这样的连续字符");

		//表单 validate
		form.validate({
			errorElement : 'span',
			errorClass : 'help-block help-block-error',
			focusInvalid : false,
			rules : {
				'newPWD' : {
					required : true,
					minlength: 6,
					maxlength: 16,
					passwordrule:true
				},
				'cnewPWD' : {
					equalTo: '#newPWD'
				}
			},
			invalidHandler : function(event, validator) {
				error.show();
				App.scrollTo(error, -200);
			},

			highlight : function(element) {
				$(element).closest('.form-group').addClass('has-error');
			},

			unhighlight : function(element) {
				$(element).closest('.form-group').removeClass('has-error');
			},

			success : function(label) {
				label.closest('.form-group').removeClass('has-error');
			},

			submitHandler : function(f) {
				var params = form.serializeJSON();
				error.hide();
				var keys;
				$.ajax({
					url: "/user/login/jCryptionKey?t="+Math.random(),
					type: "Get",
					async:false,
					data: null,
					success: function(data) {
						keys = data.publickey;
					}
				});
				//RSA加密
				var encrypt = new JSEncrypt();
				encrypt.setPublicKey(keys);
				params.oldPWD = encrypt.encrypt(params.oldPWD);
				params.newPWD = encrypt.encrypt(params.newPWD);
				params.cnewPWD = encrypt.encrypt(params.cnewPWD);
				$.ajax({
					url: '/user/changePWD',
					type: 'POST',
					traditional: true,
					data: params,
					success: function(msg){
						layer.alert(msg);
						layer.closeAll('page');
					}
				});
			}
		});
	});
</script>