YII2 MaskedInput:在字段之间移动不突出显示内容

YII2 MaskedInput: moving between fields does not highlight content

通常当使用 tab 键从一个字段移动到另一个字段时,字段内容(如果存在)会突出显示并按下一个键,该字段的内容将被删除,但是当使用带有小数点的 Kartik 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',                  
                                               ]                               
                                                 ]) ?>

我找到了解决方案。

用这个javascript代码就够了:

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

并在表单字段选项中添加此行:

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

这样,每次按下tab键(代码9)都会选择目标字段的内容