Сделал валидацию, которая проверяет заполнены необходимые поля или нет. Но столкнулся с проблемой, когда стало необходимым сделать следующее:
У меня есть поля Ответственный, Ответ и Дата исполнения.
По логике человек сначало должен назначить ответственного, после этого он может уже заполнять поля Ответ и Дата исполнения. На данный момент человек может заполнить ответ и дата исполнения без ответственного, что не верно ( начальник ругается).
Код валидации такой. (может кому пригодится)
jQuery(document).ready(function(){
// ====================================================== //
var jVal = {
'fullName' : function() {
jQuery('body').append('<div id="nameInfo" class="info"></div>');
var nameInfo = jQuery('#nameInfo');
var ele = jQuery('#fullname');
var pos = ele.offset();
nameInfo.css({
top: pos.top-3,
left: pos.left+ele.width()+15
});
if(ele.val().length < 6) {
jVal.errors = true;
nameInfo.removeClass('correct').addClass('error').html('← как минимум 6 символов!').show();
ele.removeClass('normal').addClass('wrong');
} else {
nameInfo.removeClass('error').addClass('correct').html('√').show();
ele.removeClass('wrong').addClass('normal');
}
},
'dataisp' : function() {
jQuery('body').append('<div id="dataisp" class="info"></div>');
var dataisp = jQuery('#dataisp');
var ele = jQuery('#dataisp');
var pos = ele.offset();
nameInfo.css({
top: pos.top-3,
left: pos.left+ele.width()+15
});
if(ele.val().length < 1) {
jVal.errors = true;
nameInfo.removeClass('correct').addClass('error').html('← Данное поле обязательно к заполнению!').show();
ele.removeClass('normal').addClass('wrong');
} else {
nameInfo.removeClass('error').addClass('correct').html('√').show();
ele.removeClass('wrong').addClass('normal');
}
},
'birthDate' : function (){
jQuery('body').append('<div id="birthInfo" class="info"></div>');
var birthInfo = jQuery('#birthInfo');
var ele = jQuery('#birthday');
var pos = ele.offset();
birthInfo.css({
top: pos.top-3,
left: pos.left+ele.width()+15
});
var patt = /^[0-9]{4}\/[0-9]{2}\/[0-9]{2}jQuery/i;
if(!patt.test(ele.val())) {
jVal.errors = true;
birthInfo.removeClass('correct').addClass('error').html('← Укажите дату!').show();
ele.removeClass('normal').addClass('wrong');
} else {
birthInfo.removeClass('error').addClass('correct').html('√').show();
ele.removeClass('wrong').addClass('normal');
}
},
'gender' : function (){
jQuery('body').append('<div id="genderInfo" class="info"></div>');
var genderInfo = jQuery('#genderInfo');
var ele = jQuery('#woman');
var pos = ele.offset();
genderInfo.css({
top: pos.top-10,
left: pos.left+ele.width()+60
});
if(jQuery('input[name="gender"]:checked').length === 0) {
jVal.errors = true;
genderInfo.removeClass('correct').addClass('error').html('← Вы мужчина или женщина?').show();
ele.removeClass('normal').addClass('wrong');
} else {
genderInfo.removeClass('error').addClass('correct').html('√').show();
ele.removeClass('wrong').addClass('normal');
}
},
'vehicle' : function (){
jQuery('body').append('<div id="vehicleInfo" class="info"></div>');
var vehicleInfo = jQuery('#vehicleInfo');
var ele = jQuery('#ship');
var pos = ele.offset();
vehicleInfo.css({
top: pos.top-10,
left: pos.left+ele.width()+40
});
if(jQuery('input[name="vehicle"]:checked').length <= 0) {
jVal.errors = true;
vehicleInfo.removeClass('correct').addClass('error').html('← Я уверен, как минимум вы владеете двумя!').show();
ele.removeClass('normal').addClass('wrong');
} else {
vehicleInfo.removeClass('error').addClass('correct').html('√').show();
ele.removeClass('wrong').addClass('normal');
}
},
'email' : function() {
jQuery('body').append('<div id="emailInfo" class="info"></div>');
var emailInfo = jQuery('#emailInfo');
var ele = jQuery('#email');
var pos = ele.offset();
emailInfo.css({
top: pos.top-3,
left: pos.left+ele.width()+15
});
var patt = /^.+@.+[.].{1,}jQuery/i;
if(!patt.test(ele.val())) {
jVal.errors = true;
emailInfo.removeClass('correct').addClass('error').html('← Введите правильный email').show();
ele.removeClass('normal').addClass('wrong');
} else {
emailInfo.removeClass('error').addClass('correct').html('√').show();
ele.removeClass('wrong').addClass('normal');
}
},
'about' : function() {
jQuery('body').append('<div id="aboutInfo" class="info"></div>');
var aboutInfo = jQuery('#aboutInfo');
var ele = jQuery('#about');
var pos = ele.offset();
aboutInfo.css({
top: pos.top-3,
left: pos.left+ele.width()+15
});
if(ele.val().length < 6) {
jVal.errors = true;
aboutInfo.removeClass('correct').addClass('error').html('← Вопрос должен содержать не менее 6 символов!').show();
ele.removeClass('normal').addClass('wrong').css({'font-weight': 'normal'});
} else {
aboutInfo.removeClass('error').addClass('correct').html('√').show();
ele.removeClass('wrong').addClass('normal');
}
},
'sendIt' : function (){
if(!jVal.errors) {
jQuery('#jform').submit();
}
}
};
// ====================================================== //
jQuery('#send1').click(function (){
var obj = jQuery.browser.webkit ? jQuery('body') : jQuery('html');
obj.animate({ scrollTop: jQuery('#jform').offset().top }, 750, function (){
jVal.errors = false;
jVal.fullName();
jVal.about();
jVal.dataisp();
jVal.sendIt();
});
return false;
});
jQuery('#fullname').change(jVal.fullName);
jQuery('#about').change(jVal.about);
jQuery('#dataisp').change(jVal.dataisp);
// ====================================================== //
});
Проблема в том, что как на php сделать проверку я знаю, но это уже будет перезагрузка формы, а необходимо это осуществить средствами Jquery.
Нашел в сети код, который позволяет проверить пользователя в базе данных и переделав его он отказывается работать
'otvetstv' : function() {
// получаем то, что ввёл пользователь
var checkString = Jquery("#otvetstv").val();
// формируем строку запроса
var data = 'user='+ checkString;
// если checkString не пуста
if(checkString) {
// делаем ajax запрос
Jquery.ajax({
type: "POST",
url: "do_check.php",
data: data,
beforeSend: function(html) { // перед отправкой
Jquery("#results").html('');
},
success: function(html){ // получаем результаты
Jquery("#results").show();
Jquery("#results").append(html);
}
});
}
return false;
});
});
do_check.php такой
//если к нам идёт $_POST запрос
if (isset($_POST['user'])) {
if(isset($_POST['otvetstv']) && empty($_POST['otvet']) && empty($_POST['dataisp'])) {
echo 'Все нормально!';
} else {
echo 'Введите ответственного!';
}
}
Помогите пожалуйста, а то показывать начальнику уже а голова не варит.