1 Отредактировано Антон (20.06.2016 20:43:21)

Тема: Маска ввода телефона

Добрый день уважаемые.
Проблема у меня такая: пытаюсь добавить на сайт маску для ввода телефона. Проверка по маске это хорошо, но ввод по маске интереснее. Нашёл плагин http://digitalbush.com/projects/masked-input-plugin/ но для его работы надо указать id поля. Точнее полю назначить id, но как это сделать через стандартный генератор форм?
Так же прошу администрацию обратить внимание на это дело и по возможности внедрить в дистрибутив CMS.
Заранее спасибо. smile

Повысить оценку Понизить оценку

2 Отредактировано Андрей (21.06.2016 09:05:06)

Re: Маска ввода телефона

Антон пишет:

Добрый день уважаемые.
Проблема у меня такая: пытаюсь добавить на сайт маску для ввода телефона. Проверка по маске это хорошо, но ввод по маске интереснее. Нашёл плагин http://digitalbush.com/projects/masked-input-plugin/ но для его работы надо указать id поля. Точнее полю назначить id, но как это сделать через стандартный генератор форм?
Так же прошу администрацию обратить внимание на это дело и по возможности внедрить в дистрибутив CMS.
Заранее спасибо. smile

Нужно создать в папке своей темы файл field.tpl и положить его по следующему пути:
/moduleview/feedback/blocks/feedback/field.tpl

Обратите внимание на <input type="text" name="{$field.alias}"  id="{$field.alias}" {if $field.length>0}maxlength="{$field.length}"{/if} value="{if $postValue}{$postValue}{else}{$field->getDefault()}{/if}"/>

{if $request} 
  {assign var=postValue value=$request->request($field.alias,'string')} 
{/if}           

{if $field.show_type=='string' || $field.show_type=='email'}   
   <input type="text" name="{$field.alias}"  id="{$field.alias}" {if $field.length>0}maxlength="{$field.length}"{/if} value="{if $postValue}{$postValue}{else}{$field->getDefault()}{/if}"/>
{elseif $field.show_type=='list'}
   {assign var=valList value=$field->getArrayValuesFromString()}
   
   {if $valList}
      {if !$field.as_radio}  
          <select name="{$field.alias}">  
              {foreach from=$valList item=val}
                  <option value="{$val}" {if $postValue==$val}selected="selected"{/if}>{$val}</option>
              {/foreach}
          </select>
      {else}
          {foreach from=$valList item=val key=k}
              <input id="vlr_{$key}_{$k}" {if $postValue==$val}checked="checked"{/if} type="checkbox" name="{$field.alias}" value="{$val}"/>
              <label for="vlr_{$key}_{$k}">{$val}</label>
          {/foreach}
      {/if}
      
   {else}
      Значения списка не заданы
   {/if}
   
{elseif $field.show_type=='yesno'}
   <select name="{$field.alias}"> 
        <option value="Да" {if $postValue=='Да'}selected="selected"{/if}>Да</option>
        <option value="Нет" {if $postValue=='Нет'}selected="selected"{/if}>Нет</option>
   </select>  
{elseif $field.show_type=='text'}
   <textarea name="{$field.alias}" class="feedTextArea">{if $postValue}{$postValue}{else}{$field->getDefault()}{/if}</textarea>   
{elseif $field.show_type=='file'}
   <input type="file" name="{$field.alias}"/> 
{elseif $field.show_type=='captcha' && ModuleManager::staticModuleEnabled('kaptcha')}
    <div class="captcha">
        <img src="{$router->getUrl('kaptcha')}?rand={rand(0, 99999)}" height="42">
        <input type="text" name="{$field.alias}" /> 
    </div>
{/if}

Повысить оценку Понизить оценку

3

Re: Маска ввода телефона

Андрей, спасибо. Всё сделал. Но теперь вылез другой косяк. Если форма находится на странице т.е. http://сайт.ру/feedback-2/ то маска работает. А если выводить форму в модальном окне, то не работает. Может с этим подскажете?

Повысить оценку Понизить оценку

Re: Маска ввода телефона

Во первых, я плагина masked input не обязательно указывать id. Нужно лишь привязать его к нужному элементу, выбрав при помощи jquery. Лучше всего просто вписать код в конце шаблона с формой.

<script type="text/javascript">
$("селектор нужного поля").inputmask("+7(999)999-99-99");
Например для поля с аттрибутом name="user_phone"
$('[name="user_phone"]').inputmask("+7(999)999-99-99");
</script>