Виджет маскированного ввода Yii2 со специальными символами

#input #yii2 #masking

#ввод #yii2 #маскирование

Вопрос:

Мне нужно создать ввод для названия компании. Это может быть от 1-4 слов и использовать «». Теперь я могу просто сделать так:

 <?= $form->field($model, 'name')->widget(yiiwidgetsMaskedInput::className(),['name' => 'name',  'mask' => ['[A][a]{1,10}[ ][a]{1,10}[ ][a]{1,10}[ ][a]{1,10}']]) ?>
  

Но прямо сейчас я могу использовать только буквы. Я вижу, что в этом виджете есть $definitions , но как правильно его использовать?

Попробовав несколько других вариантов, я делаю это следующим образом:

  <?= $form->field($model, 'name')->widget(yiiwidgetsMaskedInput::className(),['name' => 'name',     'mask' => '"[A]a"',
                    'definitions' => [
                        'a' => [
                            'validator' =>  '^[А-ЯЁA-Z] ',
                            'cardinality' => 50,
                        ]
                    ]]) ?>
  

Но мне нужна динамическая длина этого определения. Так что теперь в моей области

 "Asddasdsa asdnmsadas d asdasd asdsamj______________"
  

И мне нужно, чтобы он имел динамическую длину, чтобы «символ был после текста

Комментарии:

1. Если вы разрешаете специальные символы, то какой смысл использовать маскированный ввод. Просто используйте текстовое поле с проверкой длины

2. Там должна быть первая заглавная буква, @Nitin

3. Вы можете управлять этим в серверной части, используя функцию php, подобную ucfirst() . В MaskedInput вы можете добавить mask опцию, которая позволит вам использовать только буквенный символ, цифровой символ и буквенно-цифровой символ . Поэтому лучше использовать textfield и ucfirst()

4. @Nitin Мне нужно, чтобы он отображался при вводе имени

Ответ №1:

Если вы хотите отображать первую букву в верхнем регистре при вводе текста, используйте функцию jQuery следующим образом

 $("#your-field-id").keyup(
     function () {
         this.value = this.value.substr(0, 1).toUpperCase()   this.value.substr(1).toLowerCase();
     }
 );
  

Комментарии:

1. Мне нужно использовать мою маску, потому что там также есть кавычки