Skip to content

Commit 54f670d

Browse files
authored
ability to set tabindex in $options array
When i use MultipleInput inside regular form i need an ability to start tabindex form my value. $form->field($model, 'name')->textInput(['tabindex' => '1']) $form->field($model, 'email')->textInput(['tabindex' => '2']) $form->field($model, 'phones')->widget(MultipleInput::className(), ...) // here i need tabindex = 3
1 parent cc89d57 commit 54f670d

File tree

1 file changed

+31
-13
lines changed

1 file changed

+31
-13
lines changed

src/components/BaseColumn.php

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,9 @@ protected function renderDropDownList($name, $value, $options)
367367
Html::addCssClass($options, 'form-control');
368368
}
369369

370-
$options['tabindex'] = self::TABINDEX;
370+
if (!isset($options['tabindex'])) {
371+
$options['tabindex'] = self::TABINDEX;
372+
}
371373

372374
return Html::dropDownList($name, $value, $this->prepareItems($this->items), $options);
373375
}
@@ -401,7 +403,9 @@ protected function renderListBox($name, $value, $options)
401403
Html::addCssClass($options, 'form-control');
402404
}
403405

404-
$options['tabindex'] = self::TABINDEX;
406+
if (!isset($options['tabindex'])) {
407+
$options['tabindex'] = self::TABINDEX;
408+
}
405409

406410
return Html::listBox($name, $value, $this->prepareItems($this->items), $options);
407411
}
@@ -429,7 +433,9 @@ protected function renderHiddenInput($name, $value, $options)
429433
*/
430434
protected function renderRadio($name, $value, $options)
431435
{
432-
$options['tabindex'] = self::TABINDEX;
436+
if (!isset($options['tabindex'])) {
437+
$options['tabindex'] = self::TABINDEX;
438+
}
433439

434440
if (!isset($options['label'])) {
435441
$options['label'] = '';
@@ -454,7 +460,9 @@ protected function renderRadio($name, $value, $options)
454460
*/
455461
protected function renderRadioList($name, $value, $options)
456462
{
457-
$options['tabindex'] = self::TABINDEX;
463+
if (!isset($options['tabindex'])) {
464+
$options['tabindex'] = self::TABINDEX;
465+
}
458466

459467
if (!array_key_exists('unselect', $options)) {
460468
$options['unselect'] = '';
@@ -465,7 +473,7 @@ protected function renderRadioList($name, $value, $options)
465473
'label' => $label,
466474
'value' => $value,
467475
'data-id' => ArrayHelper::getValue($options, 'id'),
468-
'tabindex' => self::TABINDEX
476+
'tabindex' => $options['tabindex']
469477
]);
470478

471479
return Html::tag('div', $content, ['class' => 'radio']);
@@ -486,7 +494,9 @@ protected function renderRadioList($name, $value, $options)
486494
*/
487495
protected function renderCheckbox($name, $value, $options)
488496
{
489-
$options['tabindex'] = self::TABINDEX;
497+
if (!isset($options['tabindex'])) {
498+
$options['tabindex'] = self::TABINDEX;
499+
}
490500

491501
if (!isset($options['label'])) {
492502
$options['label'] = '';
@@ -511,7 +521,9 @@ protected function renderCheckbox($name, $value, $options)
511521
*/
512522
protected function renderCheckboxList($name, $value, $options)
513523
{
514-
$options['tabindex'] = self::TABINDEX;
524+
if (!isset($options['tabindex'])) {
525+
$options['tabindex'] = self::TABINDEX;
526+
}
515527

516528
if (!array_key_exists('unselect', $options)) {
517529
$options['unselect'] = '';
@@ -522,7 +534,7 @@ protected function renderCheckboxList($name, $value, $options)
522534
'label' => $label,
523535
'value' => $value,
524536
'data-id' => ArrayHelper::getValue($options, 'id'),
525-
'tabindex' => self::TABINDEX
537+
'tabindex' => $options['tabindex']
526538
]);
527539

528540
return Html::tag('div', $content, ['class' => 'checkbox']);
@@ -543,7 +555,9 @@ protected function renderCheckboxList($name, $value, $options)
543555
*/
544556
protected function renderStatic($name, $value, $options)
545557
{
546-
$options['tabindex'] = self::TABINDEX;
558+
if (!isset($options['tabindex'])) {
559+
$options['tabindex'] = self::TABINDEX;
560+
}
547561

548562
if ($this->renderer->isBootstrapTheme()) {
549563
Html::addCssClass($options, 'form-control-static');
@@ -590,7 +604,9 @@ protected function renderDefault($name, $value, $options)
590604
$type = $this->type;
591605

592606
if (method_exists('yii\helpers\Html', $type)) {
593-
$options['tabindex'] = self::TABINDEX;
607+
if (!isset($options['tabindex'])) {
608+
$options['tabindex'] = self::TABINDEX;
609+
}
594610

595611
if ($this->renderer->isBootstrapTheme()) {
596612
Html::addCssClass($options, 'form-control');
@@ -617,7 +633,9 @@ protected function renderDefault($name, $value, $options)
617633
*/
618634
protected function renderWidget($type, $name, $value, $options)
619635
{
620-
unset($options['tabindex']);
636+
if (!isset($options['tabindex'])) {
637+
$options['tabindex'] = self::TABINDEX;
638+
}
621639

622640
$model = $this->getModel();
623641
if ($model instanceof Model) {
@@ -628,7 +646,7 @@ protected function renderWidget($type, $name, $value, $options)
628646
'options' => [
629647
'id' => $this->normalize($name),
630648
'name' => $name,
631-
'tabindex' => self::TABINDEX,
649+
'tabindex' => $options['tabindex'],
632650
'value' => $value
633651
]
634652
];
@@ -639,7 +657,7 @@ protected function renderWidget($type, $name, $value, $options)
639657
'options' => [
640658
'id' => $this->normalize($name),
641659
'name' => $name,
642-
'tabindex' => self::TABINDEX,
660+
'tabindex' => $options['tabindex'],
643661
'value' => $value
644662
]
645663
];

0 commit comments

Comments
 (0)