Skip to content

Commit 627a99b

Browse files
authored
Merge pull request #322 from ua0leg/master
Ability to add custom tabindex
2 parents cc89d57 + 4ba73bf commit 627a99b

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ Yii2 multiple input change log
33

44
2.23.0 (in development)
55
=======================
6+
- Ability to add custom tabindex via options array
67

78
2.22.0
89
=======================

src/components/BaseColumn.php

Lines changed: 28 additions & 10 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'] = '';
@@ -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'] = '';
@@ -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,6 +633,8 @@ protected function renderDefault($name, $value, $options)
617633
*/
618634
protected function renderWidget($type, $name, $value, $options)
619635
{
636+
637+
$tabindex = isset($options['options']['tabindex']) ? $options['options']['tabindex'] : self::TABINDEX;
620638
unset($options['tabindex']);
621639

622640
$model = $this->getModel();
@@ -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' => $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' => $tabindex,
643661
'value' => $value
644662
]
645663
];

0 commit comments

Comments
 (0)