2017-11-18 10 views
0

通常、Tabキーを使用してフィールドから別のフィールドに移動すると、フィールドの内容(存在する場合)が強調表示され、キーの内容が削除されますが、 Kartik MaskedInputを小数フィールドで使用すると発生しません。YII2 MaskedInput:フィールド間を移動しても内容がハイライト表示されない

コントロールを別のフィールドに移動すると、カーソルが最後に移動するので、フィールドコンテンツを削除するにはbackspaceを使用するか、マウスで強調表示する必要があります。

私は多くのフィールドを持つフォームを持っているので、編集には時間がかかります。

これは私のコードです:

<?= $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

私は解決策を見つけました。

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

とフォームフィールドのオプションで、この行を追加します:

それはこのJavaScriptコードを使用するのに十分だ

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

をこのように、毎回タブキーが押されている(コード9)宛先フィールドの内容が選択される

関連する問題