Перейти к содержимому


Как Сделать Шаблон Телефонного Номера


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 fury21

fury21

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 134 сообщений

Отправлено 12 Май 2012 - 16:32

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

#2 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 008 сообщений

Отправлено 12 Май 2012 - 19:46

На данный момент есть только такая реализация данного вопроса http://forum.storela...ndpost__p__4405

#3 fury21

fury21

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 134 сообщений

Отправлено 13 Май 2012 - 14:36

А почему нельзя сделать как тут, например??? http://skriptkpbstud...i_dlj_form.html

#4 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 008 сообщений

Отправлено 14 Май 2012 - 19:13

Вы можете использовать любые средства до достижения необходимого результата - если таковые доступны. Я же вам указала пример решения данного вопроса без использования сторонних скриптов.

#5 fury21

fury21

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 134 сообщений

Отправлено 14 Май 2012 - 22:04

Ограничением в 12 символов проблема не решается!!!

Подскажите тогда как прикрутить скрипт который я выше указал. Там в поле input тоже используется ID , а на сколько я знаю два раза использовать нельзя. Может как то модно по другому?

И еще, если в теге <input id="contactPhone" name="form[contact][phone]" class="required" value="{ORDER_FORM_CONTACT_PHONE}">
заменить id="contactPhone" на свой, то что измениться в функционале???

#6 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 008 сообщений

Отправлено 15 Май 2012 - 22:28

Лучшим вариантом будет использовать уже имеющийся функционал. Необходимо только создать метод проверки телефона. Это описано тут http://docs.jquery.c...Methods/phoneUS

Метод

jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
	phone_number = phone_number.replace(/\s+/g, ""); 
	return this.optional(element) || phone_number.length > 9 &&
		phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");

Реализует проверку номера телефона в соответствии регулярному выражению
/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/
Данный код необходимо вставить в файл main.js после строки
$(document).ready(function(){ 

А так же разместить

$("#myform").validate({
  rules: {
	field: {
	  required: true,
	  phoneUS: true
	}
  }
});

с указанием id элемента для проверки.

Само регулярное выражение можно заменить на необходимы формат ввода номера телефона.

#7 Semenovmisha

Semenovmisha

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 03 Март 2014 - 22:07

Просмотр сообщенияVaccina (15 Май 2012 - 22:28) писал:

Лучшим вариантом будет использовать уже имеющийся функционал. Необходимо только создать метод проверки телефона. Это описано тут http://docs.jquery.c...Methods/phoneUS

Метод

jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, "");
	return this.optional(element) || phone_number.length > 9 &&
		phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");

Реализует проверку номера телефона в соответствии регулярному выражению
/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/
Данный код необходимо вставить в файл main.js после строки
$(document).ready(function(){ 

А так же разместить

$("#myform").validate({
rules: {
field: {
required: true,
phoneUS: true
}
}
});

с указанием id элемента для проверки.

Само регулярное выражение можно заменить на необходимы формат ввода номера телефона.

Извините, но я не совсем понял как сделать то что вы описали... Можно поподробнее, пожалуйста...

#8 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 04 Март 2014 - 02:28

Если вы хотите задать валидацию номера телефона, то вам необходимо в файле main.js после строки

$(document).ready(function(){

вставить следующий код

if(typeof(jQuery.validator) != 'undefined') {
jQuery.validator.addMethod("phone_number", function(value, element) {
return (this.optional(element) || /^(?:(?:\+?7\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/i.test(value)) ? true : false;
}, "Укажите корректный телефонный номер");
}

далее в шаблоне "Оформление заказа" найдите строку

<input id="contactPhone" name="form[contact][phone]" class="required" value="{ORDER_FORM_CONTACT_PHONE}">

и замените её на

<input id="contactPhone" name="form[contact][phone]" class="required phone_number" value="{ORDER_FORM_CONTACT_PHONE}">


#9 Semenovmisha

Semenovmisha

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 04 Март 2014 - 15:54


Сake - это совсем не то что я имел ввиду... Я имею ввиду что нужно чтобы телефон автоматически в карточке появлялся в формате 8-***-***-**-**, а не в 8**********, а что вы написали при неправильном формате ввода выдает ошибку и только отпугнет клиента...


#10 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 05 Март 2014 - 01:36

Ранее данный вопрос рассматривался в следующей теме форума http://forum.storela...вышения-продаж/




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных