2016-10-19 4 views
0

Ich muss Eingabe für den Firmennamen erstellen. Es kann von 1-4 Wörtern sein und "" verwenden. Jetzt kann ich nur so machen:Yii2 MaskedInput Widget mit Sonderzeichen

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

Aber jetzt kann ich nur Buchstaben verwenden. Ich sehe, es gibt $definitions in diesem Widget, aber wie man es richtig verwendet?

Nach einigen othr Optionen versuchen, ich mache es so:

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

Aber ich brauche dynamische Länge dieser Definitionen sein. So, jetzt in meinem Bereich

"Asddasdsa asdnmsadas d asdasd asdsamj______________" 

Und ich brauche es dynamische Länge zu machen, damit das "Symbol nach Text war

+0

Wenn Sie Sonderzeichen sind erlaubt, was ist dann der Punkt bei der Verwendung von maskierten eingegeben wird. einfach Textfeld mit Länge Validierung verwenden –

+0

Es erste Großbuchstabe sein sollte, @Nitin – hottern

+0

Sie können dies auf Backend verwalten, pHP-Funktion wie 'ucfirst() '. In MaskedInput können Sie die Option 'mask' hinzufügen, die Ihnen ** alphabetisches Zeichen, numerisches Zeichen und nur alphanumerisches Zeichen ** erlaubt. Also besser mit 'textfield' und' ucfirst() 'zu gehen. –

Antwort

0

Wenn Sie die ersten Buchstaben in Großbuchstaben angezeigt werden sollen, während dann Funktion JQuery Eingabe verwenden, wie

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

Ich muss meine Maske verwenden, weil es auch Zitate gibt – hottern

Verwandte Themen