2017-11-18 95 views
0

通常当使用Tab键从一个字段移动到另一个字段时,字段内容(如果存在)将突出显示,并按下键将删除该字段的内容,使用带有十进制字段的Kartik MaskedInput时会发生。YII2 MaskedInput:在字段之间移动不会突出显示内容

当我将控件移动到另一个字段时,光标在最后移动,所以我必须使用退格删除字段内容或使用鼠标突出显示它。

我有一个很多领域的表单,所以这是需要很长时间来编辑。

这是我的代码:

<?= $form->field($model, 'val_one' , ['template' => ' 
         <div class="input-group "> 
         <span class="input-group-addon"> 
         FIRST 
         <span class="glyphicon glyphicon-euro"></span> 
         </span> 
         {input}      
         </div> 
         {error}{hint}'])->textInput(['maxlength' => true])->label(false)->widget(yii\widgets\MaskedInput::className(), 
               [ 
               'clientOptions' => [ 
               'alias' => 'decimal', 
               'groupSeparator' => '.', 
               'radixPoint' => ',', 
               'digits' => 2, 
               'autoGroup' => true, 
               'removeMaskOnSubmit' => true, 
               'rightAlign' => false,         
               ], 
               'options' => [ 
               'class' => 'form-control',     
               ]        
               ]) ?> 

回答

0

我找到了解决办法。

这足以使用JavaScript代码:

$focus = <<< JS 
function getSelect(item) { 
if (event.keyCode == 9) { 
item.select(); 
    }; 
}; 
JS; 
$this->registerJs($focus, View::POS_END); 

,并在窗体域选项中加入这一行:

'onkeyup' => 'getSelect($(this))' 

这样,每次制表键被按下(代码9)目标字段的内容被选中