html javascript 定义密码长度在6-10之间,用javascript实现用户登录验证的代码。

Welcome to Sushi Hub

content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />

/* base */

html {

background-color: rgb(35, 31, 29);

font: 81.25%/1.25 arial, helvetica, sans-serif;

}

body {

margin: 0;

}

img {

max-width: 100%;

}

.hidden {

display: none;

}

.fl {

float: left;

}

.text-center {

text-align: center;

}

.p-bottom {

margin-bottom: 1em;

}

input[type=tel], input[type=text], input[type=email],

input[type=number] {

border: 1px solid #d9d9d9;

font-size: 1.3em;

}

input[type=tel]:hover,  input[type=text]:hover,

input[type=email]:hover, input[type=number]:hover {

border: 1px solid #4d90f3;

}

/********   common     *********/

.wrapper {

}

.header-bar {

background-color: rgb(35, 31, 29);

padding: 15px 15px 0;

text-align: center;

}

.header-bar > .inner, .main {

margin: 0 auto;

width: 80%;

max-width: 400px;

}

.signup {

color: #fff;

padding: 20px;

}

.signup .form-element {

margin-bottom: 15px;

}

.signup .form-element strong, .signup .form-element

span {

width: 100%;

display: inline-block;

margin: 0 0 .2em;

font-size: 1.2em;

}

.signup input[type=tel],  .signup input[type=text], .signup

input[type=number], .signup input[type=email] {

width: 100%;

height: 33px;

box-sizing: border-box;

margin: 0px;

padding: 0 8px;

}

.signup input[type=tel], input[type=text],

input[type=number], input[type=email] {

width: 100%;

height: 33px;

box-sizing: border-box;

margin: 0px;

padding: 0 8px;

}

.signup input[type=checkbox] {

float: left;

margin: 0;

}

.accept-service .text {

margin-left: 20px;

font-size: .95em;

}

.btn {

color: #fff;

font-weight: bold;

text-align: center;

padding: 5px 10px;

border: 0;

}

.btn-submit {

background-color: rgb(117, 23, 23);

padding: 16px 80px;

-webkit-border-radius: 2px;

border-radius: 2px;

display: inline-block;

width: 255px;

height: 57px;

-webkit-appearance: none;

font-size: 1.7em;

}

/********* signup success *********/

.signup-success-info {

border: 1px solid #fff;

padding: 10px 15px;

}

.signup-success .name {

margin-top: 15em;

}

.signup-success .name p {

margin: .5em 0;

}

.input-error {

border: 1px solid #dd4b39;

}

.input-error::-webkit-input-placeholder { /* WebKit

browsers */

color: #dd4b39;

}

.input-error:-moz-placeholder { /* Mozilla Firefox 4 to 18 */

color: #dd4b39;

}

.input-error::-moz-placeholder { /* Mozilla Firefox 19+ */

color: #dd4b39;

}

.input-error:-ms-input-placeholder { /* Internet Explorer

10+ */

color: #dd4b39;

}

.input-error:focus::-webkit-input-placeholder { /* WebKit

browsers */

color: #999;

}

.input-error:focus:-moz-placeholder { /* Mozilla Firefox 4

to 18 */

color: #999;

}

.input-error:focus::-moz-placeholder { /* Mozilla Firefox

19+ */

color: #999;

}

.input-error:focus:-ms-input-placeholder { /* Internet

Explorer 10+ */

color: #999;

}

.errormsg {

margin: .5em 0 0;

display: block;

color: #dd4b39;

line-height: 17px;

}

.input-error {

-webkit-animation: breath

}

@-webkit-keyframes breath {

from {

-webkit-box-shadow: 0px 0px 0px rgb(221, 75, 57)

}

to {

-webkit-box-shadow: 10px 10px 0px rgb(221, 75, 57)

}

}

               

src="@Url.Content("../images/logo.png")"

alt="logo"  />

(function () {

function Validation(node, cfg) {

this.element = node;

this.inputs = Array.prototype.slice.call(this.element.querySelectorAll('[data-require="true"]'));

this.cfg = cfg || {};

//this.errorNum = 0;

this.cfg.rules = {

name: {

msg: 'Name should be 2-18 letters.',

rule: /^[a-zA-Z ]{2,18}$/

},

phone: {

msg: 'Mobile number should be 10 digits.',

rule: /^\d{10}$/

},

mail: {

msg: 'Please enter a correct email address.',

rule: /^[A-Za-z0-9._%+-]+@@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}$/i

},

check: {

msg: 'This must be chosen.',

rule: 'check'

},

post: {

msg: 'Postcode should be 4 digits.',

rule: /^\d{4}$/

}

}

this.groups = Array.prototype.slice.call(node.getElementsByClassName('form-element'));

if (this.inputs.length === 0) return;

this._init();

}

Validation.prototype = {

constructor: Validation,

_event: function () {

var self = this;

self.element.addEventListener('focusin', function

(e) {

var target = e.target;

if (getRequireValue.call(target)) {

//removeClass(target, 'input-error');

// target.classList.remove('input-error');

self._removeAlert(target);

}

});

self.element.addEventListener('focusout', function

(e) {

var target = e.target,

rule,

value;

if (getRequireValue.call(target)) {

self._validate(target);

}

});

self.element.addEventListener('change', function

(e) {

var target = e.target,

rule,

value;

if (target.type == 'checkbox') {

if (getRequireValue.call(target)) {

if (target.checked) {

//removeClass(target, 'input-error');

//   target.classList.remove('input-error');

self._removeAlert(target);

}

}

}

});

self.element.addEventListener('submit', function

(e) {

e.preventDefault();

var errorNum = self.validate();

//   debugger;

if (errorNum == 0) {// 发送请求

ajax(self.cfg.urls.sendInfoUrl,

serializeForm(self.element), function (data) {

// debugger;

data = eval('(' + data + ')');

if (data.result == 'success') {

data = data.content;

if (getType(data) == 'array') {

if (data.length == 0) {

//跳转

location.href = self.cfg.urls.successUrl;

} else {

data.forEach(function

(item, index) {

//alert(item.type);

var input =

document.querySelector('[data-type="' + item.type + '"]');

input.value = '';

//alert(input.value);

self._validate(input, item.msg);

});

}

}

}

});

}

})

},

_createAlert: function (target, msg) {

var parentNode = target.parentNode,//label,

self = this,

div;

debugger;

target.classList.add('input-error');

if

(parentNode.getElementsByClassName('errormsg').length == 0) {

div = document.createElement('div');

div.innerText = msg;

div.className = 'errormsg';

parentNode.appendChild(div);

}

},

_removeAlert: function (target) {

var parentNode = target.parentNode;

target.classList.remove('input-error');

var msgs = parentNode.getElementsByClassName('errormsg');

for (var i = 0, len = msgs.length; i < len; i++) {

msgs[i].parentNode.removeChild(msgs[i]);

}

},

_getRule: function (node) {

var type = node.getAttribute('data-type'),

self = this,

t,

rule = { msg: '', rule: '' };

for (t in this.cfg.rules) {

if (t == type &&

this.cfg.rules.hasOwnProperty(type)) {

rule = this.cfg.rules[type];

break;

}

}

return rule;

},

_validate: function (target, msg) {

var self = this,

rule = self._getRule(target),

value = target.value,

errorNum = 0;

//                if(rule.rule == 'check'){ //勾选

//                    if(target.checked == false){

//                        addClass(target, 'input-error');

//                        self._createAlert(target, rule.msg);

//                    }

//                }else{

//                    if(rule.rule && !rule.rule.test(value)){

//                        addClass(target, 'input-error');

//                        self._createAlert(target, rule.msg);

//                    }

//                }

if ((rule.rule == 'check' && target.checked

== false) || (rule.rule !== 'check' && !rule.rule.test(value))) {

//addClass(target, 'input-error');

target.classList.add('input-error');

self._createAlert(target, msg || rule.msg);

errorNum++;

}

return errorNum;

},

validate: function () {

var self = this,

errorNum = 0;

self.inputs.forEach(function (input, index) {

errorNum += self._validate(input);

})

return errorNum;

},

_init: function () {

var self = this;

self._event();

}

}

new Validation(document.getElementById('signupform'), {

urls: {

sendInfoUrl: '/Home/Valid',

successUrl: '/Home/Success'

}

})

function getRequireValue() {

return eval(this.getAttribute('data-require')) == true;

}

function getMessage() {

return this.getAttribute('data-message');

}

function ajax(url, data, successFn, failFn) {

var oAjax = new XMLHttpRequest();

oAjax.open('POST', url, true);

oAjax.setRequestHeader("Content-Type",

"application/x-www-form-urlencoded; charset=UTF-8");

oAjax.send(data);

oAjax.onreadystatechange = function () {

if (oAjax.readyState == 4) {

if (oAjax.status == 200) {

successFn && successFn(oAjax.responseText);

} else {

failFn && failFn();

}

}

}

}

function getType(obj) {

return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();

}

//表单序列化

function serializeForm(whichForm) {

var parts = new Array();

var field = null;

for (var i = 0, len = whichForm.elements.length; i <

len; i++) {

field = whichForm.elements[i];

switch (field.type) {

case "select-one":

case "select-multipe":

for (var j = 0, optLen =

field.options.length; j < optLen; j++) {

var option = field.options[j];

if (option.selected) {

var optValue = "";

if (option.hasAttribute) {

optValue =

(option.hasAttribute("value") ? option.value : option.text);

}

else {

optValue =

(option.attributes["value"].specified ? option.value : option.text);

}

parts.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(optValue));

}

}

break;

case undefined:

case "file":

case "submit":

case "reset":

case "button":

break;

case "radio":

case "checkbox":

if (!field.checked) {

break;

}

default:

parts.push(encodeURIComponent(field.name) +

"=" + encodeURIComponent(field.value));

}

}

return parts.join("&");

}

})();

发表于 2015-05-08 10:44:38

回复(1)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值