Javascript-форум (https://javascript.ru/forum/)
-   Работа (https://javascript.ru/forum/job/)
-   -   Валидация формы через JavaScript (https://javascript.ru/forum/job/52531-validaciya-formy-cherez-javascript.html)

valerius_balance 23.12.2014 13:07

Валидация формы через JavaScript/jQuery [вопрос закрыт]
 
Необходима небольшая помощь в JavaScript. Бюджет: 10wmz

1. Сайт http://natr-nsp.ru/
2. У него есть формы, как например, ЗАКАЗАТЬ ЗВОНОК.
3. Проблема в том, что форма НЕ ПРОХОДИТ ВАЛИДАЦИЮ ни при каких значениях (даже если убрать проверку по корректности ввода номера и имени), т.е. всегда при нажатии "Отправить заявку!" появляется сообщение "Не удалось отправить форму!".
4. Такая же ситуация на всех остальных формах.

Файлы, которее отвечают за эту часть: http://natr-nsp.ru/scripts.js и http://natr-nsp.ru/app/c/tracker.js

Помогите, пожалуйста, разобраться и исправить этот косяк во всех формах.

ps. Можно напрочь убрать валидацию, за исключением той, которая подцеплена к полям (телефон, email, корректное имя и т.д.)

fancy 23.12.2014 13:17

Не сочти за рекламу.
Вот моя библиотека для форм на JQuery
http://fancyjs.com
Особый упор сделал на валидацию вот пример.
http://fancyjs.com/samples/validation.html
Ajax Sumbit если форма прошла валидацию.
Добавление своего типа валидации через RegExp или function.

Дизайн формы можешь поменять через css.
Про цену не парься.
Это просто моя проба коммерческого проекта.
Пока не продал ни одной лицензии.
Считай для тебя даром - за ритвит одной из новостей.
https://twitter.com/FancyForm

valerius_balance 23.12.2014 13:30

fancy,
подмочь прикрутить эту штуку сможете?

fancy 23.12.2014 13:32

Помогу)))

Сейчас набросаю код))
Дизайн уж сам поменяй)) придется переписать css))

fancy 23.12.2014 13:56

Вот как то так))
http://jsfiddle.net/mikhailtatsky/xyn60t3v/1/

Про валидацию телефона, я подумаю.
По сути нужно найти просто RegExp для этого.
Либо можешь скопировать код проверки телефона и вставить в функцию.
Следующий пост - два примера как сделать через RegExp и как через function

Поменяй url для sumbit запроса на свой и метода отправки.
GET или POST в method, по умолчанию GET

FancyForm.vtype({
	type: 'email',
	re: /^(")?(?:[^\."])(?:(?:[\.])?(?:[\w\-!#$%&'*+\/=?\^_`{|}~]))*\1@(\w[\-\w]*\.){1,5}([A-Za-z]){2,6}$/,
	blankText: 'required',
	text: 'Incorect email'
});

var form = $('#form').FancyForm({
	title: 'Регистрация',
	width: 300,
	height: 250,
	inputWidth: 195,
	labelWidth: 60,
	
	url: 'submit.php',
	params: {
		//param1: 1,
	   // param2: 'string'
	},
	method: 'POST',
	
	defaults: {
		type: 'string'
	},
	items: [{
		label: 'Имя*',
		emptyText: 'Имя',
		valid: {
			blank: false,
			blankText: 'Необходимо заполнить'
		},
		name: 'name'
	},{
		label: 'Фамилия*',
		emptyText: 'Фамилия',
		valid: {
			blank: false,
			blankText: 'Необходимо заполнить'
		},
		name: 'surname'
	},{
		label: 'E-mail*',
		emptyText: 'E-mail',
		valid: {
			type: 'email',
			blank: false,
			blankText: 'Необходимо заполнить'
		},
		name: 'email'
	},{
		type: 'number',
		label: 'Телефон*',
		name: 'phone',
		valid: {
			blank: false,
			blankText: 'Необходимо заполнить'
		}
	}],
	buttons: [{
		text: 'Получить Дисконтную Карту',
		handler: function(){
			form.submit({
				params: {
					//param3: 'Some Values'
				},
				success: function(result, status, xhr){
					console.log('success');
					console.log(arguments);
				},
				error: function(xhr,status,error){
					console.log('error');
					console.log(arguments);
				}
			});
		}
	}]
});

fancy 23.12.2014 13:57

FancyForm.vtype({
	type: 'email',
	re: /^(")?(?:[^\."])(?:(?:[\.])?(?:[\w\-!#$%&'*+\/=?\^_`{|}~]))*\1@(\w[\-\w]*\.){1,5}([A-Za-z]){2,6}$/,
	blankText: 'required',
	text: 'Incorect email'
});

FancyForm.vtype({
	type: 'age',
	fn: function(value){
		return value>20 && value<80;
	},
	text: 'Age should be more 20 and less 80'
});

fancy 23.12.2014 13:57

Будут еще вопросы спрашивай))

fancy 23.12.2014 14:00

text: 'Incorect email' поменяй на
text: 'Некорректный email'

valerius_balance 23.12.2014 14:29

fancy, Подключил Вашу библиотеку js. Вот такую ошибку выдает http://prntscr.com/5k1k6v

Это всё в порядке?

valerius_balance 23.12.2014 14:31

fancy, отменяется. Это я оказывается подключил Вашу библиотеку до jquery.


Часовой пояс GMT +3, время: 03:40.