Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Проверка существования телефона

Как осуществить проверку существования телефона при вводе его в форме?
HTML5
1
  <input name="phone" type="text" value=""> 
Не маску задать, а именно проверить существование. Спасибо!
Ответ: whiteapps, из любопытства стало интересно, а есть ли российские сайты, которые юзают валидационную проверку номера на существование абонента HLR - запросом(API) с помощью указанных Вами сервисов? Это профессиональный интерес, никогда не приходилось сталкиваться на сайтах с использованием подобных сервисов для определения существования номера абонента... Спасибо за ответ...
Вопрос: маска телефона в инпуте

Доброго времени!
впервые с таким сталкиваюсь, не могу понять причины..
на сайте есть стандартная маска телефона в инпуте, прикол в том что теперь в другие инпуты ни чего не введешь кроме телефона, в поле имя, например, в чем причина то может быть, присваивание маски идет по классу phone у остальных инпутов этого класса нет...
Javascript
1
2
3
jQuery(function($){
   $(".phone").mask("+7(___)___-___");
});
HTML5
1
<input type="text" placeholder="+7(___)___-___" class="phone">
Ответ: ошибка в синтаксисе скрипта была, тему можно закрывать)
Вопрос: как сделать маску телефона в input c +7(___) без jQuery

на чистом javascript нашел только такую маску
<html>
<head>
<script type="text/javascript">
  function mask(inputName, mask, evt) {
    try {
      var text = document.getElementById(inputName);
      var value = text.value;

      // If user pressed DEL or BACK SPACE, clean the value
      try {
        var e = (evt.which) ? evt.which : event.keyCode;
        if ( e == 46 || e == 8 ) {
          text.value = "";
          return;
        }
      } catch (e1) {}

      var literalPattern=/[0\*]/;
      var numberPattern=/[0-9]/;
      var newValue = "";

      for (var vId = 0, mId = 0 ; mId < mask.length ; ) {
        if (mId >= value.length)
          break;

        // Number expected but got a different value, store only the valid portion
        if (mask[mId] == '0' && value[vId].match(numberPattern) == null) {
          break;
        }

        // Found a literal
        while (mask[mId].match(literalPattern) == null) {
          if (value[vId] == mask[mId])
            break;

        newValue += mask[mId++];
      }

      newValue += value[vId++];
      mId++;
    }

    text.value = newValue;
  } catch(e) {}
}
</script>
</head>
<body>
<form id="form1">
<input type="text" id="zipCode" onkeyup="javascript:mask('zipCode', '+7(000)000-00-00', event);" value="+7(___)___-____" >
</form>
</html>



но нужно сделать так, чтобы скобки не пропадали, когда начинаешь вводить телефон и при очистке делитом скобки и подчеркивания тоже должны оставаться. Нужно обязательно без jQuery.
Ответ: Крутотень, но я вот смотрю на колбеки и заказы в БД, как народ вводит - как хочет, так и вводит, кому как удобно и всем по-моему поссать на эти паттерны. Проблематика видимо в том, что когда у одного есть свистелка, ее надо прикрутить всем, а то видишь ли, опмтимизаторы набегут и все равно заставят. )))
Вопрос: Скрипт для проверки наличия телефона в базе

Доброго дня!
Имеется форма обратной связи, в ней имеется поле "Телефон клиента"
Может есть какой то скрипт, для проверки этого поля...
Например, есть база со списком клиентов где указаны их номера телефонов, как сделать так чтоб отправка формы была невозможна, если такой телефон уже есть в этой базе?
Ответ: Padimanskas, самое тупое - прозвон и навязываение
Вопрос: Дополнительная проверка дропзоны

Здравствуйте.

В одном из гридов у меня есть сортировка через drag'n'drop. Но хитрость там в том, что некоторые позиции для дропа запрещены. Я могу это проверить через beforedrop, выдать сообщение и все такое... Но Было бы более красиво сразу запретить дроп в запрещенную зону, при движении через нее показать красный индикатор с соответствующим текстом. Я стал копаться в исходниках и не нашел ничего полезного, кроме как переписать кое-что в Ext.view.DropZone:
Ext.define('SafetyRound.patch.view.DropZone', {
  override: 'Ext.view.DropZone',
  
  isPositionValid: function(overRecord, draggingRecords, pos){
		var 
			me = this,
			valid = !Ext.Array.contains(draggingRecords, overRecord) &&
  			( pos === 'before' && !me.containsRecordAtOffset(draggingRecords, overRecord, -1) ||
					pos === 'after' && !me.containsRecordAtOffset(draggingRecords, overRecord, 1)
				);
		// <-------- some additional validation here
		return valid;
  },
  
	positionIndicator: function(node, data, e) {
		var
			me = this,
			view = me.view,
			pos = me.getPosition(e, node),
			overRecord = view.getRecord(node),
			draggingRecords = data.records,
			indicatorY;
		
		if (me.isPositionValid(overRecord, draggingRecords, pos)) {
			me.valid = true;
			if (me.overRecord !== overRecord || me.currentPosition !== pos) {
				indicatorY = Ext.fly(node).getY() - view.el.getY() - 1;
				if (pos === 'after') {
					indicatorY += Ext.fly(node).getHeight();
				}
				// If view is scrolled using CSS translate, account for then when positioning the indicator
				if (view.touchScroll === 2) {
					indicatorY += view.getScrollY();
				}
				me.getIndicator().setWidth(Ext.fly(view.el).getWidth()).showAt(0, indicatorY);
				// Cache the overRecord and the 'before' or 'after' indicator.
				me.overRecord = overRecord;
				me.currentPosition = pos;
			}
		} else {
			me.invalidateDrop();
		}
	}
  
});

Однако сей вариант очень костыльный. Если вдруг у меня будет более одного места с драгодропом, придется постоянно лепить всякие костыли и проверки.

Есть ли более человеческий способ?
Ответ: Да, копипаст - это зло. Вот этот вариант должен удовлетворять требованиям задачи:

viewConfig: {
		plugins: [{
			ptype: 'gridviewdragdrop',
			dragText: 'Drag and drop to reorganize',
            dropZone : {
                onNodeOver : function (node, dd) {
                    // we allow to drop to nodes having ID > 3
                    var record = dd.view.getRecord(node);
                    var isValid = record && record.getId() > 3;

                    return isValid ? this.dropAllowed : this.dropNotAllowed;
                }
            }
		}]
	},


Возвращается имя ЦСС-класса.

Вопрос: Маска ввода номера. Сам номер не приходит в почту :(

Друзья, скажите, что не так в коде?
Сделал скрипт маски ввода тел номера вот код:
Javascript
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
// маска телефона//
function clearVal(val, limit){
    var newVal = val.replace(/[^\d]+/g, '');
    if( newVal == '' ){
        return false;
    }else{
        return newVal.substring(0, limit);
    }
}
 
function getResString(newVal){
    var res = '';
    for(var i = 0; i < newVal.length; i++){
        if( i == 3 ){
            res += ' ';
            res += newVal.charAt(i);
        }else if( i == 6 || i == 8 ){
            res += '-';
            res += newVal.charAt(i);
        }else{
            res += newVal.charAt(i);
        }
    }
    return res;
}
 
$(function(){
    $('#customer_phone').on('input', function(){
        var val = $(this).val(),
            limit = 10;
        if( val == '' ) return;
 
        var newVal = clearVal(val, limit);
        if(!newVal){
            $(this).val('');
            return;
        }
        var res = getResString(newVal);
        $(this).val(res);
    });
});
 
// маска телефона//
 
    $(".forms").submit(function(){
        $.ajax({
            type:"POST",
            url:"mail.php",
            data:   $(this).serialize()
        })
        .done(function(){
            alert("Спасибо за заявку! Специалист свяжется с вами в ближайшее время.");
        setTimeout(function(){
            $.magnificPopup.close();
            $(".forms").trigger("reset");
        }, 1000);
    });
        return false;});
И вроде частично работает ( частично, потому как, не показывает саму маску вида+7 ___ ___-__-__ (по клику))
Но основная проблема в том, что при отправке, до меня не доходит сам номер! Вот в чем вся штука!
Как сие исправить?
Точнее будет так:
1) как вывести вид маски вида: +7 (___) ___-__-__ (по клику).
2) как решить проблему с отсутствием номера в письме?
Когда маски не было, всё работало отлично...

Вот код самой формы для отправки:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<div class="col-md-4">
                                <form class="forms"><h4>Заявка:</h4><p>Оставьте заявку и мы свяжемся с вами в течение ближайшего времени в рабочие часы с 09:00 до 17:00 c пн-пт.</p>
                                    <label><span>Ваше имя:</span><input type="text" name="name" required></label>
                                    <label>
                                        <span>Ваш телефон:</span>
                                        <input type="$sitename" name="customer_phone" required id="customer_phone">
                                    </label>
 
                                    <div class="button-wrap">
                                        <button class="buttons">Отправить</button>
                                    </div>
 
                                    <input type="hidden" name="formname" value="Заявка с верхней формы">
                                </form>
                            </div>
А вот код mail.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 
$frm_name  = "Youname";
$recepient = "*****@yandex.ru";
$sitename  = "ООО СК Урал";
$subject   = "Новая заявка с сайта \"$sitename\"";
 
$name = trim($_POST["name"]);
$phone = trim($_POST["phone"]);
$formname = trim($_POST["formname"]);
 
$message = "
Форма: $formname <br>
Имя: $name <br>
Телефон: $phone
";
 
mail($recepient, $subject, $message, "From: $frm_name <$email>" . "\r\n" . "Reply-To: $email" . "\r\n" . "X-Mailer: PHP/" . phpversion() . "\r\n" . "Content-type: text/html; charset=\"utf-8\"");
Спасибо.
Ответ: Я этого не знаю. Тут есть серьезные ребята, они подскажут. А я - просто любитель ))
Вопрос: Как изменить функцию для проверки вводимых данных?

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

-Регулярное выражение построил

С остальной частью не могу разобраться
Вот мои наработки

Код Javascript
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
<html>
 <head>
  <title>Регистрация</title>
<SCRIPT LANGUAGE="JavaScript">
    <!--
    function CheckData()
{
  var ans;
  ans = confirm("Вы уверены, что хотите отправить введенные данные ?");
  if (ans) submit();
var x=document.forms["labwork2"]["Name"].value;
if (x==null || x=="")
  {
  alert("Имя должно быть обязательно введено");
  return false;
  }
}
 
function checkpole()
{
var validEMail, pattn;
pattn = new RegExp("^[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?\.[A-Za-z0-9]
 
{2,6}$"); 
validEMail = pattn.test(document.getElementById("email").value));
}
 
function isValidPhone(Phone) { 
   return /^\+\d{2}\(\d{3}\)\d{3}-\d{2}-\d{2}$/.test(Phone); 
} 
    // -->
    </SCRIPT>
 
 
 </head>
 <body> 
<center><p>><strong><font size="5"> Для регистрации необходимо указать ваши 
 
персональные данные</font></strong></p></center>
<center>
<form NAME="labwork2">
onSubmit = "CheckData(); return false;"
 <TABLE>
       <TR><TD><B>*Имя:</B></TD><TD><INPUT TYPE="text" 
        NAME="Name" 
        onChange="this.value=this.value.toUpperCase()"
        SIZE="20" ></TD></TR>
 
      <TR><TD><B>Организация(компания)</B></TD><TD><INPUT TYPE="text" 
        NAME="Company" SIZE="20"></TD></TR>
 
      <TR><TD><B>Телефон</B></TD><TD><INPUT TYPE="text" 
        NAME="Phone" SIZE="20"></TD></TR>
 
      <TR><TD><B>*Адрес эл.почты</B></TD><TD><INPUT TYPE="text" 
        NAME="Email" SIZE="20" 
        onChange="this.value=CheckAge(this.value)"
        onFocus="this.select()"
        ></TD></TR>
      <P>
      <TABLE>
<TR><TD><INPUT TYPE="button" VALUE="Отправить"
        onClick="Отправить;"></TD>
        onSubmit = "CheckData(); return false;"
        <TD><INPUT TYPE="button" VALUE="Очистить"></TD></TR>
      </TABLE>
</center>
<left>* Поля обязательные для заполнения</left>
  </form>
 </body>
</html>
Ответ:
Сообщение от kalabuni
8 + 495 + семизначный номер дают в итоге 11 знаков, а не 12
да, просто привык не 8(... а +7(....

Добавлено через 24 секунды
Сообщение от kalabuni
а со стационарного на стационарный и подавно звонили и звонят без каких-либо кодов
нет, нифига)))
Вопрос: Как запретить отправлять обрезанный номер телефона?

Всем привет! Есть сайт на wordpress с формой отправки.
Для ввода телефона по маске установлена библиотека
masked-input-plugin.js

Формирую ее таким образом
$(document).ready(function () {
$('.fphone').mask('+7(999)-999-99-99');
});


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

Форма реализована с помощью плагина contact form 7, я переопределяю его проверку номера вот так в файле
functions.php

// define the wpcf7_is_tel callback 
function custom_filter_wpcf7_is_tel( $result, $tel ) { 
  $result = preg_match( '^\+?[78][-\(]?\d{3}\)?-?\d{3}-?\d{2}-?\d{2}$', $tel );
  return $result; 
}
         
add_filter( 'wpcf7_is_tel', 'custom_filter_wpcf7_is_tel', 10, 2 );


Но, в результате, каждый раз пишет "некорректный номер телефона"

Перепробовал много вариантов, в том числе и регулярок, но пока к верному решению не пришел.
Ответ:
Сообщение от Nexus
giwuf, то ли я дебил, то ли у вас маска не работает.
Если пользователь первой цифрой введет восьмерку, то она (если маска работает) станет второй цифрой в номере телефона.
Скрипт проверяет вторую цифру в номере телефона и, если это восьмерка, вызывает alert.
Вместо alert'а запретите форме отправляться и готово.


Значит я все таки не дебил.
Nexus, да, спасибо, с 8 стало яснее - не отправляет пока не введешь до конца, но при этом с семеркой возможна отправка обрезанного номера..

В итоге плюнул, вырезал из темы библиотеку с проверкой и установил плагин и все решилось. Спасибо за помощь!
Вопрос: Перестает работать маска для поля после ajax

Здравствуйте, на странице оформления заказа в поле телефон привязана маска с помощью скрипта jquery.maskedinput.js, если не ввести номер телефона и нажать оформить заказ, выскакивает сообщение с просьбой заполнить поле и маска в поле исчезает. Почему это происходит? Как исправить?
PHP
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$this->addExternalJS("/bitrix/templates/site/js/jquery.maskedinput.js");
 
if($USER->IsAuthorized() || $arParams["ALLOW_AUTO_REGISTER"] == "Y")
{
    if($arResult["USER_VALS"]["CONFIRM_ORDER"] == "Y" || $arResult["NEED_REDIRECT"] == "Y")
    {
        if(strlen($arResult["REDIRECT_URL"]) > 0)
        {
            $APPLICATION->RestartBuffer();
            ?>
            <script type="text/javascript">
                window.top.location.href='<?=CUtil::JSEscape($arResult["REDIRECT_URL"])?>';
            </script>
            <?
            die();
        }
 
    }
}
 
$APPLICATION->SetAdditionalCSS($templateFolder."/style_cart.css");
$APPLICATION->SetAdditionalCSS($templateFolder."/style.css");
 
?>
 
<a name="order_form"></a>
 
<div id="order_form_div" class="order-checkout">
<NOSCRIPT>
    <div class="errortext"><?=GetMessage("SOA_NO_JS")?></div>
</NOSCRIPT>
 
<?
if (!function_exists("getColumnName"))
{
    function getColumnName($arHeader)
    {
        return (strlen($arHeader["name"]) > 0) ? $arHeader["name"] : GetMessage("SALE_".$arHeader["id"]);
    }
}
 
if (!function_exists("cmpBySort"))
{
    function cmpBySort($array1, $array2)
    {
        if (!isset($array1["SORT"]) || !isset($array2["SORT"]))
            return -1;
 
        if ($array1["SORT"] > $array2["SORT"])
            return 1;
 
        if ($array1["SORT"] < $array2["SORT"])
            return -1;
 
        if ($array1["SORT"] == $array2["SORT"])
            return 0;
    }
}
?>
 
<div class="bx_order_make">
    <?
    if(!$USER->IsAuthorized() && $arParams["ALLOW_AUTO_REGISTER"] == "N")
    {
        if(!empty($arResult["ERROR"]))
        {
            foreach($arResult["ERROR"] as $v)
                echo ShowError($v);
        }
        elseif(!empty($arResult["OK_MESSAGE"]))
        {
            foreach($arResult["OK_MESSAGE"] as $v)
                echo ShowNote($v);
        }
 
        include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/auth.php");
    }
    else
    {
        if($arResult["USER_VALS"]["CONFIRM_ORDER"] == "Y" || $arResult["NEED_REDIRECT"] == "Y")
        {
            if(strlen($arResult["REDIRECT_URL"]) == 0)
            {
                include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/confirm.php");
            }
        }
        else
        {
            ?>
            <script type="text/javascript">
 
            <?if(CSaleLocation::isLocationProEnabled()):?>
 
                <?
                // spike: for children of cities we place this prompt
                $city = \Bitrix\Sale\Location\TypeTable::getList(array('filter' => array('=CODE' => 'CITY'), 'select' => array('ID')))->fetch();
                ?>
 
                BX.saleOrderAjax.init(<?=CUtil::PhpToJSObject(array(
                    'source' => $this->__component->getPath().'/get.php',
                    'cityTypeId' => intval($city['ID']),
                    'messages' => array(
                        'otherLocation' => '--- '.GetMessage('SOA_OTHER_LOCATION'),
                        'moreInfoLocation' => '--- '.GetMessage('SOA_NOT_SELECTED_ALT'), // spike: for children of cities we place this prompt
                        'notFoundPrompt' => '<div class="-bx-popup-special-prompt">'.GetMessage('SOA_LOCATION_NOT_FOUND').'.<br />'.GetMessage('SOA_LOCATION_NOT_FOUND_PROMPT', array(
                            '#ANCHOR#' => '<a href="javascript:void(0)" class="-bx-popup-set-mode-add-loc">',
                            '#ANCHOR_END#' => '</a>'
                        )).'</div>'
                    )
                ))?>);
 
            <?endif?>
 
            var BXFormPosting = false;
            function submitForm(val)
            {
                if (BXFormPosting === true)
                    return true;
 
                BXFormPosting = true;
                if(val != 'Y')
                    BX('confirmorder').value = 'N';
 
                var orderForm = BX('ORDER_FORM');
                BX.showWait();
 
                <?if(CSaleLocation::isLocationProEnabled()):?>
                    BX.saleOrderAjax.cleanUp();
                <?endif?>
 
                BX.ajax.submit(orderForm, ajaxResult);
 
                return true;
            }
 
                function ajaxResult(res)
            {
                var orderForm = BX('ORDER_FORM');
                try
                {
                    // if json came, it obviously a successfull order submit
 
                    var json = JSON.parse(res);
                    BX.closeWait();
 
                    if (json.error)
                    {
                        BXFormPosting = false;
                        return;
                    }
                    else if (json.redirect)
                    {
                        window.top.location.href = json.redirect;
                    }
                }
                catch (e)
                {
                    // json parse failed, so it is a simple chunk of html
 
                    BXFormPosting = false;
                    console.log(res);
                    BX('order_form_content').innerHTML = res;
 
                    <?if(CSaleLocation::isLocationProEnabled()):?>
                        BX.saleOrderAjax.initDeferredControl();
                    <?endif?>
                }
 
                BX.closeWait();
                BX.onCustomEvent(orderForm, 'onAjaxSuccess');
                }
 
            function SetContact(profileId)
            {
                BX("profile_change").value = "Y";
                submitForm();
            }
            </script>
            <?if($_POST["is_ajax_post"] != "Y")
            {
                ?><form action="<?=$APPLICATION->GetCurPage();?>" method="POST" name="ORDER_FORM" id="ORDER_FORM" enctype="multipart/form-data">
                <?=bitrix_sessid_post()?>
                <div id="order_form_content">
                <?
            }
            else
            {
                $APPLICATION->RestartBuffer();
            }
 
            if($_REQUEST['PERMANENT_MODE_STEPS'] == 1)
            {
                ?>
                <input type="hidden" name="PERMANENT_MODE_STEPS" value="1" />
                <?
            }
 
            if(!empty($arResult["ERROR"]) && $arResult["USER_VALS"]["FINAL_STEP"] == "Y")
            {
                foreach($arResult["ERROR"] as $v)
                    echo ShowError($v);
                ?>
                <script type="text/javascript">
                    top.BX.scrollToNode(top.BX('ORDER_FORM'));
                </script>
                <?
}
 
            include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/summary.php");
 
            ?>
            <script type="text/javascript">
            jQuery(function($) {
           $("#ORDER_PROP_3").mask("+7(999) 999-9999");
            });</script>
 
                <div class="container">
                <h2>Контактные данные</h2>
                <div class="persone-type"><?
                    include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/person_type.php");
                    include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/props.php");
 
                ?>
                </div>
            </div><?
 
            if ($arParams["DELIVERY_TO_PAYSYSTEM"] == "p2d")
            {
                include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/paysystem.php");
                include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/delivery.php");
            }
            else
            {
                include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/delivery.php");
                include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/paysystem.php");
            }
 
            //include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/related_props.php");
 
            if(strlen($arResult["PREPAY_ADIT_FIELDS"]) > 0)
                echo $arResult["PREPAY_ADIT_FIELDS"];
            ?>
 
            <div class="cart-btn-line">
                <div class="container">
                    <div class="row">
                        <div class="col-md-7">
                            <div class="agree-rules-text">
                                <? $APPLICATION->IncludeFile('/include/order_warning.php') ?>
                            </div>
                        </div>
                        <div class="col-md-5">
                            <a href="javascript:void();" onclick="submitForm('Y'); return false;" id="ORDER_CONFIRM_BUTTON" class="btn btn-default"><?=GetMessage("SOA_TEMPL_BUTTON")?></a>
                        </div>
                    </div>
                </div>
            </div>
 
            <?if($_POST["is_ajax_post"] != "Y")
            {
                ?>
                    </div>
                    <input type="hidden" name="confirmorder" id="confirmorder" value="Y">
                    <input type="hidden" name="profile_change" id="profile_change" value="N">
                    <input type="hidden" name="is_ajax_post" id="is_ajax_post" value="Y">
                    <input type="hidden" name="json" value="Y">
 
                </form>
                <?
                if($arParams["DELIVERY_NO_AJAX"] == "N")
                {
                    ?>
                    <div style="display:none;"><?$APPLICATION->IncludeComponent("bitrix:sale.ajax.delivery.calculator", "", array(), null, array('HIDE_ICONS' => 'Y')); ?></div>
                    <?
                }
            }
            else
            {
                ?>
                <script type="text/javascript">
                    top.BX('confirmorder').value = 'Y';
                    top.BX('profile_change').value = 'N';
                </script>
                <?
                die();
            }
        }
    }
    ?>
    </div>
</div>
 
<?if(CSaleLocation::isLocationProEnabled()):?>
 
    <div style="display: none">
        <?// we need to have all styles for sale.location.selector.steps, but RestartBuffer() cuts off document head with styles in it?>
        <?$APPLICATION->IncludeComponent(
            "bitrix:sale.location.selector.steps", 
            ".default", 
            array(
            ),
            false
        );?>
        <?$APPLICATION->IncludeComponent(
            "bitrix:sale.location.selector.search", 
            ".default", 
            array(
            ),
            false
        );?>
    </div>
 
<?endif?>
Ответ: добавьте маску в эту функцию
Javascript
1
2
 function ajaxResult(res)
            {
Вопрос: Как сделать форму (поле) телефон по шаблону 8(___) ___-__-__

Добрый день!
Заранее прошу прощения ,если тема повторяется или не туда написал.
Мне нужно чтобы, когда человек нашимал на поле Введите телефон, ему открывался в форме этот шаблон.
8(___) ___-__-__
Как это сделать?

Пример:
Ответ: Здравствуйте! Подскажите пожалуйста, как сделать чтоб когда поле теряет фокус, маска оставалась?