Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проверка поля инпут (https://javascript.ru/forum/jquery/53114-proverka-polya-input.html)

sashgera 21.01.2015 15:11

Проверка поля инпут
 
Вложений: 1
Здравствуйте
есть форма - модуль Обратный звонок, открывается в popup окне, форма с админ-панелью
в этой форме, для поля email есть регулярное выражение, а для поля с телефоном нет.
Пытался сделать проверку поля инпут телефона так (оформление кода оставил так, как в исходнике):
if(mand_tell&&Query.trim(jQuery('#call_tell').val())==""){callcons_mess('Введите Ваш телефон','call_tell');return}else{if(jQuery.trim(jQuery('#call_tell').val())!=""){if(!validTell(jQuery('#call_tell').val())){callcons_mess('Введите корректный_телефон','call_tell');return}else{jQuery.cookie('call_tell',jQuery('#call_tell').val());json_form_data+=',"call_tell":"'+jQuery('#call_tell').val()+'"'}}}

if(mand_tell)jQuery('#call_tell_div .call_form_name').append('<span style="color: red;">*</span>');

function validTell(tel){var re=/^[0-9()\-+ ]+$/;if(re.test(tel)){return true}else{return false}}


в результате форма в попап окне не открывается, пожалуйста, помогите
(для лучшего понимания прикрепляю файл)

danik.js 21.01.2015 15:14

Цитата:

Сообщение от sashgera
if(re.test(tel)){return true}else{return false}

Если (правда|ложь) вернуть правда иначе вернуть ложь. Тафтология, правда? Делается так:

return re.test(tel)


1. Отформатируй код.
2. Проверь онлайн сервисом jshint или jslint на ошибки.

Rise 21.01.2015 15:17

Цитата:

оформление кода оставил так, как в исходнике
Спасибо большое)

registrant 21.01.2015 15:19

Цитата:

Сообщение от danik.js
Проверь онлайн сервисом jshint или jslint на ошибки.

Он проверяет код не на ошибки, а на ё*ную неведомую х*ню, которая с точки зрения старого маразматика похожа на ошибки. Так же он думает, что монады -- это бурито. Слабо проверить код на бурито головного мозга? Не надо вводить людей в заблуждение

sashgera 21.01.2015 15:38

danik.js, ошибка здесь - mand_tell:
if(mand_tell&&Query.trim.....

и в строке, которую я добавил
if(mand_tell)jQuery('#call_tell_div .call_form_name').append('<span style="color: red;">*</span>');

рони 21.01.2015 15:51

Цитата:

Сообщение от sashgera
ошибка здесь

(mand_tell && Query

sashgera 21.01.2015 15:57

Вложений: 1
Цитата:

Сообщение от рони (Сообщение 352599)
(mand_tell && Query

не помогло
я плохо владею js и наверное не правильно задал вопрос, пожалуйста, посмотрите вложенный файл

danik.js 21.01.2015 17:58

Цитата:

Сообщение от sashgera
Query.trim

Может, все таки jQuery.trim?

sashgera 21.01.2015 21:39

danik.js,
в модуле, который я установил, проверка поля Ваш e-mail проходит так:
if(mand_email&&jQuery.trim(jQuery('#call_email').val())==""){
	callcons_mess('Введите Ваш email','call_email');return}
	else{if(jQuery.trim(jQuery('#call_email').val())!=""){
	if(!validEmail(jQuery('#call_email').val())){callcons_mess('Введите правильный email','call_email');return}
	else{jQuery.cookie('call_email',jQuery('#call_email').val());
	json_form_data+=',"call_email":"'+jQuery('#call_email').val()+'"'}}}

// из админ-панели чекбоксом можно включить обязательное/не обязательное к заполнению
if(mand_email)jQuery('#call_email_div .call_form_name').append('<span style="color: red;">*</span>');

// регулярное выражение для поля Ваш e-mail
function validEmail(email){
	var re=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
	if(re.test(email)){return true}else{return false}}

Проверки регулярным выражением поля Ваш телефон в этом модуле нет, проверяется только заполнено поле или нет:
if(jQuery.trim(jQuery('#call_tell').val())==""){
	callcons_mess('Введите номер телефона','call_tell');return}
	else{
	jQuery.cookie('call_tell',jQuery('#call_tell').val());
	json_form_data+='"call_tell":"'+jQuery('#call_tell').val()+'"'}

Проверку регулярным выражением поля Ваш телефон сделал так, но форма перестала отправляться
if(Query.trim(jQuery('#call_tell').val())==""){
	callcons_mess('Введите Ваш телефон','call_tell');return}
	else{if(jQuery.trim(jQuery('#call_tell').val())!=""){
	if(!validTell(jQuery('#call_tell').val())){callcons_mess('Введите корректный телефон','call_tell');return}
	else{jQuery.cookie('call_tell',jQuery('#call_tell').val());
	json_form_data+=',"call_tell":"'+jQuery('#call_tell').val()+'"'}}}

function validTell(tel){
	var re=/^[0-9()\-+ ]+$/;
	if(re.test(tel)){return true}else{return false}}

рони 21.01.2015 21:58

sashgera,
зачем запятая в 6 строке
Цитата:

Сообщение от sashgera
json_form_data+=',"call_tell":"



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