Программирование, веб-кодинг

Yii2: Отметить radiobutton по нажатию на кнопку или ссылку на странице (по javascript)

Yii2: Отметить radiobutton по нажатию на кнопку или ссылку на странице (по javascript)

Так выглядит группа радиокнопок в форме yii2

<?= $form->field($model, 'package')->radioList(app\models\Course::getPackagesArray(),['class'=>'radiopackage voffset40', 'item' => function($index, $label, $name, $checked, $value) { 
                                    $return = '<div class="radio"><label>'; 
                                    $return .= '<input type="radio" name="' . $name . '" value="' . $value . '" id="package_'.$index.'" >'; 
                                    $return .= '<span> ' . ucwords($label) . '</span>'; 
                                    $return .= '</label></div>'; 
                                    return $return; 
                                  }])->label(false); ?> 

пришлось сделать это через функцию, чтобы у каждого input'а радиокнопки задать свой id.

Дальше в ссылке или кнопке вызываем событие по нажатию onClick, и там вызываем функцию

<a href="#contacts" onClick="package0()" class="login-btn">Начать</a> 

Эта функция package(). У меня всего три радиокнопки в группе кнопок, поэтому javascript такой:

<script>
        function package0(){
            document.getElementById("package_0").checked=true;    
        }
        function package1(){
            document.getElementById("package_1").checked=true;    
        }
        function package2(){
            document.getElementById("package_2").checked=true;    
        }
        function packageclear(){
            document.getElementById("package_0").checked=false; 
            document.getElementById("package_1").checked=false;
            document.getElementById("package_2").checked=false;            
        }
    </script>

packageclear() - можно вызывать в ссылках, когда надо сделать все кнопки неотмеченными, это бывает полезно.


Читайте также