validate.js
3.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
jQuery(document).ready( function(){
var reg, fielsVoid;
var validator = new Object();
validator.email = /^([a-z0-9_\.-]+)@([a-z0-9_\.-]+)\.([a-z\.]{2,6})$/;
validator.url = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
validator.name = /^[a-zA-Zа-яА-ЯёЁ ]+$/;
validator.title = /^[a-zA-Zа-яА-ЯёЁ ]+$/;
validator.login = /^[a-z0-9_-]{1,16}$/;
validator.password = /^[a-zA-Zа-яА-ЯёЁ ]{1,20}$/;
testFild = function(validator, reg) {
validator.errors = false;
if(validator.оbligatory) {
if (!validator.field.val().replace(/\s+/g, '').length) {
validator.errors = true;
}
}
if(validator.confirm) {
validator.field.closest('form').find('#'+validator.confirm).each(function(){
if (validator.field.val() == $(this).val()) {
return validator.errors = false;
} else {
return validator.errors = true;
}
})
}
if (!validator[reg].test(validator.field.val())) {
validator.errors = true;
}
if(!validator.errors && validator.ajaxceck){
var ajax,dataArray;
var id = $('#send-form').find('#id-input').val();
var name = validator.field.attr('name');
var field = {
name : name,
value: validator.field.val(),
id: id
};
var str = JSON.stringify(field);
ajax = $.ajax({
type: "POST",
url: validator.urlvalid,
data: "data="+str,
dataType: "text",
async: false,
success: function (data){data;}
}).responseText;
dataArray = $.parseJSON(ajax);
validator.errors = dataArray.errors;
$('.errorMessage').remove();
$('<p class = "errorMessage">'+dataArray.message+'</p>').appendTo(validator.field.closest('.input-group'));
}
if ( !validator.errors) {
console.log(validator.errors);
return validator.field.removeClass('valid-input').removeClass('error-input').addClass('valid');
} else {
console.log(validator.errors);
return validator.field.removeClass('valid').removeClass('error-input').addClass('error-input');
}
};
$('.validate-input').on('keyup', function() {
validator.field = $(this);
reg = $(this).data('reg');
validator.оbligatory = $(this).data('оbligatory');
validator.ajaxceck = $(this).data('ajaxceck');
validator.confirm = $(this).data('confirm');
validator.urlvalid = $(this).closest('form').data("url");
return testFild(validator, reg);
});
$('.validate-input').on('change', function() {
validator.field = $(this);
reg = $(this).data('reg');
validator.оbligatory = $(this).data('оbligatory');
validator.ajaxceck = $(this).data('ajaxceck');
validator.confirm = $(this).data('confirm');
validator.urlvalid = $(this).closest('form').data("url");
return testFild(validator, reg);
});
$('#send-form').submit(function(event) {
$(this).find('input').each(function(){
if($(this).data('оbligatory')) {
validator.field = $(this);
reg = $(this).data('reg');
validator.оbligatory = $(this).data('оbligatory');
validator.ajaxceck = $(this).data('ajaxceck');
validator.confirm = $(this).data('confirm');
validator.urlvalid = $(this).closest('form').data("url");
testFild(validator, reg);
}
});
if($(this).find('.error-input').length){
event.preventDefault();
event.returnValue = false;
}
})
});